cpp获取数组长度——sizeof()、size() 、strlen()、str.length()的区别

一、sizeof()

返回实际长度,即所占字节数,通过计算获取长度;

int型数组只可使用sizeof()获取长度.(vector可使用size()获取)

一维数组:

int list[] = { 2,4,1,3,5 };
int length = sizeof(list) / sizeof(list[0]);

二维数组:

int list2[][2] = { {2,4},{1,3},{5,0} };
int length2 = sizeof(list2) / sizeof(list2[0]);		//行数
int length3 = sizeof(list2) / sizeof(list2[0][0]);		//元素个数
int length4 = sizeof(list2[0]) / sizeof(list2[0][0]);		//每行元素个数

多维度以此类推。

二、size()和length()

返回字符串长度,不包括 “\0”;

size()函数是为了STL的兼容问题才出现的,所以size()可以用于vector容器;

length()在c语言中就有了,只能用于获取字符串长度;

size()与length()源码一致;

char类型数组不能使用size()、length(),只能使用strlen().

三、strlen()

返回字符串长度,参数只能为char*;

以“\0”为终止符,因此该char数组必须以''/0''结尾.

//from https://blog.csdn.net/hannea/article/details/25102727
char mail[100]="haha";
cout<< "strlen(mail): "<< strlen(mail)<<endl;
 
char *psd;
psd="lalala";
cout<< "strlen(psd): " << strlen(psd)<<endl;

四、总结

int型:arr.sizeof(),vector可以使用size();

char型:strlen(str),以“\0”为终止符;

string型:str.size()和str.length().

参考:

(16条消息) C/C++ strlen(str)和str.length()和str.size()的区别_Hannea007的博客-CSDN博客(16条消息) 1.27【日结】C/C++ strlen(str)和str.length()和str.size()的区别_从零开始的小栗子的博客-CSDN博客_str.legth不能用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

樱桃小叮当

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值