获取字符串、字符数组的长度

在C/C++中常用的获取字符串长度或者字符串数组长度的函数有
sizeof()
length()
strlen()
size()

其中strlen(str)和str.length()和str.size()都可以用来求字符串的长度 。
str.length()和str.size()是用于求string类对象的成员函数
strlen(str) 是用于求字符串数组的长度,其参数是char*
辨析strlen() 与 sizeof() 的区别

strlen(char*)
函数求是字符串的实际长度,它可以用来获取动态实际字符数组的长度,是从开始到遇到第一个“\0”,如果只是定义没有赋予初始值,这个结果是不确定的,它会从数组的首地址开始一直找下去,直到遇到“\0”停止查找。

sizeof()
求所占总空间的字节数,静态的,跟初始状态字符数组的大小有关系,大小等于初始时字符数组的大小或者等于初始时字符数组的大小+1
在C++中,如果定义的是字符串数组的话,那么如果想获取数组的长度,只能用sizeof(数组名),而不能用strlen(str)。

char str[20]="0123456789"; 
int   a=strlen(str); a=10;strlen 计算字符串的长度,以\0'为字符串结束标记。 
int   b=sizeof(str); b=20;sizeof 计算的则是分配的数组str[20] 所占的内存空间的大小,不受里面存储的内容影响

char *str1="absde";
char str2[]="absde";
char str3[8]={
    
    'a',};
char ss[] = "0123456789";
输出:
sizeof(str1)=4;
sizeof(str2)=6;
sizeof(str3)=8;
sizeof(ss)=11

猜你喜欢

转载自blog.csdn.net/weixin_43902941/article/details/105974496
今日推荐