C/C++中sizeof()、strlen()、length()、size()详解和区别

日期: 2024-11-01 14:01:37|浏览: 14|编号: 106716

友情提醒:信息内容由网友发布,请自鉴内容实用性。

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 =“”;

库特

提醒:请联系我时一定说明是从浚耀商务生活网上看到的!