区分sizeof()、size()、strlen()以及length()以及如何使用

一、区分sizeof()和strlen()

首先,sizeof()【操作数所占空间的字节数大小】是一种c中的基本运算符。(是操作符,并不是函数)可以以类型、指针、数组和函数等作为参数。

它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此 sizeof() 不能用来返回动态分配的内存空间的大小

char str[30];
gets(str);      //输入str
cout<<sizeof(str)<<endl;

这里,如果我输入“Hello”,那么输出的结果会是什么呢?5?还是6?
没错,输出的结果是30,因为sizeof() 在该段程序中的作用是计算字符数组str所占空间字节数的大小,而字符数组str在创建时,系统自动给他分配了30个空间字节,所以无论输入什么(前提是不超过字符数组的范围),输出结果都会是30。(这一点也侧面说明了sizeof()其值在编译时即计算好了

而相比较于sizeof()strlen() 是一种函数,用于计算字符串的长度,(只能计算字符串),‘\0’作为终止符,返回的长度大小不包括’\0’,并且 strlen 的结果是运行的时候才出来(不是编译期求值)

char str[30];
gets(str);
cout<<strlen(str)<<endl;

这里,我们输入“Hello”,那么输出的结果就会是5,即字符数组str的长度。

  • strlen函数求得的字符串长度是从字符串第一个元素到第一个’\0’之间元素的个数
  • sizeof求得的结果是存储该字符串的变量占用的空间大小,因而一定会包括’\0’.若’\0’后还有空余的空间,也会包含到结果里面

二、size()函数以及length()函数

C++中,在获取字符串长度时,size()函数与length()函数作用相同。

string str;
cin>>str;
cout<<str.size()<<endl;
cout<<str.length()<<endl;

这里,我们同样还是输入字符串“Hello”,两个函数结果都为5。

总结:

  1. sizeof() 可以以类型、指针、数组和函数等作为参数,其值在编译时计算,用于获取操作数所占空间的字节数大小。
  2. strlen()函数其参数只能为char*(字符型指针),所以在计算字符数组(char str[ ])时,一般用strlen()函数(也只能用于计算字符数组了)。
  3. size()函数以及length()函数都用于计算字符串(string)长度,不能用char*作为参数。除此之外,size()函数还可以获取vector类型的长度。

C++求字符串长度————sizeof()、size()、strlen()以及length()详解相关推荐

  1. strlen、sizeof与size()求字符串长度的区别

    strlen.sizeof与size()求字符串长度的区别 cout<<strlen("123")<<endl; //返回 3 cout<<si ...

  2. 【C语言】模拟实现库函数 strcpy(复制字符串内容) 与 strlen(求字符串长度)

    前言:对于库函数的使用,我们不仅要会使用方法,更要知晓使用原理,而知晓使用原理最好的方法就是模拟相应库函数的使用. 今天我们就来模拟 strcpy(复制字符串内容) 与 strlen(求字符串长度)这 ...

  3. c/c++中sizeof()、strlen()、length()、size()详解和区别

    c/c++中获取字符串长度.有以下函数:size().sizeof() .strlen().str.length(); 一.数组或字符串的长度:sizeof().strlen() 1.sizeof() ...

  4. c语言中用于获取字符串长度的函数是,C语言中求字符串长度的函数的几种实现方法...

    C语言中求字符串长度的函数的几种实现方法 1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) { ass ...

  5. Bailian2681 求字符串长度【字符串】

    求字符串长度 总时间限制: 1000ms 内存限制: 65536kB 描述 求一个长度不大于100的字符串的长度,要求不使用strlen方法,并且使用到字符指针. 输入 输出 字符串的长度. 样例输入 ...

  6. C语言用指针求字符串长度

    #include<stdio.h> //指针求字符串长度 int main() {char ch[] = "bit";int count = 0;/*int sz = ...

  7. 求字符串长度【三种解题思路】

    文章目录 一.递归法 二.指针减指针法 三.计数器法   题目:模拟实现一个strlen函数,也就是求字符串长度的函数. 一.递归法 #include<stdio.h> #include& ...

  8. 求字符串长度的多种方法

    目录 标准简洁快速法 创建临时变量        --计数器的方法 不许创建临时变量 --递归的方法 运用指针运算        --指针减指针的方法 本文涉及知识点:求字符串长度用  strlen ...

  9. 三种方法求字符串长度

    在求字符串长度时,第一时间会想到运用strlen这个函数,但对于初学者来说,除了掌握这个函数之外,还应当自己写函数来实现相似的功能. 接下来我列举了三种方法来求字符串长度,供大家参考: (1)运用st ...

最新文章

  1. (亲测可行)基于面绘制的MC算法以及基于体绘制的 Ray-casting 实现Dicom图像的三维重建(python实现)
  2. gitlab备份与还原:配置文件解读、定时备份、云备份
  3. mysql主从复制思考_Mysql主从复制(拓展博客文章分享及思考)
  4. HDLBits答案(3)_Verilog模块的例化与调用
  5. java static调用吗_Java中的static的使用
  6. CentOS7 修复boot目录
  7. 重置gitlab管理员密码
  8. 021.4 IO流——字节、字符桥梁(编码解码)
  9. java生成docx文件、pdf文件、docx转pdf、docx转图片 pdf转图片工具
  10. u盘工作表在计算机上打不开,U盘中无法打开的excel的解决办法
  11. matlab定义struck,Peter Struck
  12. 如何将Python打包后的exe还原成.py?
  13. 小红书X千瓜联合发布|小红书2021年4月创作者红人榜
  14. linux中ext3多重索引的原理,Ext3日志原理
  15. QT报错:“pure virtual method called; terminate called without an active exception“
  16. Sqlserver2014远程远程连接
  17. 【LittleXi】规划兼职工作
  18. artdialog html4,artdialog_ (dialog4) 显示页面样式的用法
  19. 十分钟学会memcache,比你想象的要简单
  20. AE/PR动态模糊插件ReelSmart MotionBlur Pro(RSMB)

热门文章

  1. 华为低端交换机堆叠配置
  2. diea设置代码编辑区背景色为豆沙绿
  3. python两位小数向上取整函数_python3中的函数如何实现小数向上取整
  4. C/C++取整函数ceil(向上取整)和floor(向下取整)
  5. c语言库函数中atof函数的功能是,C语言库函数名: atoi、atof
  6. SoC-点亮led灯
  7. bzoj3007: 拯救小云公主(二分+并查集)
  8. 大容量数据传输,原来可以这么玩
  9. python 修改文件只读,Python脚本去除文件的只读性操作
  10. php flot,Flot | | PHP信息技术研究中心