C++获取字符串长度的⼏个函数⽅式
C/C++ strlen(str)、str.length()、str.size()、sizeof(str)都可以求字符串长度。
其中str.length()、str.size()、sizeof(str)是⽤于求string类对象的成员函数
strlen(str)是⽤于求字符数组的长度,其参数是char*。
补充知识:获取字符串长度的函数sizeof()、strlen()、length()、size()详解和区别
在C++中计算长度的函数有四种,它们分别是sizeof() ,size(),strlen(),str.length()。
⼀. sizeof()和strlen()两者区别:
1)sizeof操作符的结果类型是size_t,该类型保证能容纳实现所建⽴的最⼤对象的字节⼤⼩。
2)sizeof是运算符,strlen是函数。
3)sizeof可以⽤类型做参数,strlen只能⽤char*做参数,且必须是以''\0''结尾的。
4)sizeof在编译时期就计算出来,strlen在运⾏之后才能计算出来。
5)strlen计算字符串的具体长度(只能是字符串),不包括字符串结束符。返回的是字符个数。sizeof计算声明后所占的内存数(字节⼤⼩),不是实际长度。
举例:
1)char* ss = "0123456789";
sizeof(ss)为4,ss是指向字符串常量的字符指针,sizeof 获得的是指针所占的空间,则为4
sizeof(*ss)为1,*ss是第⼀个char字符,则为1
2)char ss[] = "0123456789";
sizeof(ss)为11,ss是数组,计算到'\0'位置,因此是(10+1)
sizeof(*ss)为1,*ss是第⼀个字符
3)char ss[100] = "0123456789";
sizeof(ss)为100,ss表⽰在内存中预分配的⼤⼩,100*1
strlen(ss)为10,它的内部实现⽤⼀个循环计算字符串的长度,直到'\0'为⽌。
4)int ss[100] = "0123456789";
sizeof(ss)为400,ss表⽰在内存中预分配的⼤⼩,100*4
字符串长度的正确表示
strlen(ss)错误,strlen参数只能是char*,且必须是以'\0'结尾
5)char[] a={'a','b','c'};
sizeof(a)的值应该为3。
char[] b={"abc"};
sizeof(b)的值应该是4。
6)若string str={'a','b','c','\0','X'};
那么sizeof(str)为5,strlen(str)为3。
⼆. string中的length()和size()
c++中,在获取字符串长度时,size()函数与length()函数作⽤相同。
例如:string str = “wang”
则,str.length() = 4。
除此之外,size()函数还可以获取vector类型的长度。
例如:vector < int> num(15,2)
则,num.size() = 15。
以上这篇C++获取字符串长度的⼏个函数⽅式就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。