C/C++中sizeof()、strlen()、length()、size()详解和区别
表
目标
两者都获取字符串长度。
概括
(str)、str.() 和 str.size() 都可以求字符串的长度。
其中,str.()和str.size()是用于查找类对象的成员函数。
(str)用于求字符数组的长度,其参数为char*。
数组或字符串的长度:()、()
1.():返回占用的总空间的字节数
(1) 对于整型字符数组
(2) 对于整数或字符指针
功能:
获取保证容纳由实现创建的最大对象的大小(以字节为单位)。因为它是在编译时计算的,所以不能用于返回动态分配的内存空间的大小。
2.():返回字符数组或字符串占用的字节数
(1) 对于字符数组
(2) 对于字符指针
(char*) 函数查找字符串的实际长度。
例子
1) char* ss = "";
(ss)为4,ss是指向字符串常量的字符指针,得到的是指针所占用的空间,则为4
(*ss)为1,*ss为第一个char字符,则为1
2) char ss[] = "";
(ss)为11,ss是一个数组,计算到'\0'位置,所以是(10+1)
(*ss) 为 1,*ss 为第一个字符
3) char ss[100] = "";
(ss)为100,ss代表内存中预分配的大小,100*1
(ss)为10,其内部实现使用循环来计算字符串的长度,直到'\0'。
4) int ss[100] = "";
(ss)为400,ss代表内存中预先分配的大小,100*4
(ss)错误,参数只能是char*且必须以'\0'结尾
5) char[] a={'a','b','c'};
(a) 的值应为 3。
char[] b={"abc"};
(b) 的值应为 4。
if str={'a','b','c','\0','X'};
那么 (str) 是 5,(str) 是 3。
()和()的区别
c++中size()和()没有区别
喜欢:
str =“”;
库特