欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-25 16:00:09
...

在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
相关标签: c++ 字符串