C++中length()、size()、sizeof()三者的区别

本文详细介绍了C++中length()、size()和sizeof()三个函数的区别。length()和size()主要针对字符串,用于获取长度,而sizeof()则用于获取数据类型或变量占用的内存大小。在获取字符数组长度时,strlen()不包含结束符'',而sizeof()则包括。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++中length()、size()、sizeof()三者的区别

1.length()函数

在c++中,length()只是用来获取字符串的长度。

例如:string str = “abcdefg”
则:str.length() = 7

2.size()函数

在c++中,在获取字符串长度时,size()函数与length()函数作用相同。
除此之外,size()函数还可以获取vector类型的长度。

例如:vector < int> num(15,2)
则:num.size() = 15

3.sizeof()函数

在c++中,sizeof()用于获取数据类型或者变量所占内存空间的大小。

例如:int a=10;
则:sizeof(int)=4

4. c++获取字符数组的长度的方法

方法一:只能用与字符数组

#include<cstring>
cout<<strlen(a);

方法二:

char arr[]="abcdefg"
//char arr[]={'a','b','c','d','e','f','g','\0'};字符数组和用字符数组定义字符串的区别
cout<<sizeof(arr) / sizeof(arr[0]); 

注意:获取字符数组长度时,使用strlen(a)和sizeof(arr) / sizeof(arr[0]) 得到的结果略有差别,sizeof(a) / sizeof(a[0]) 会把char数组的’\0’也算入在内。所以得到的大小会比strlen得到的大一。
C风格字符串结束符’\0‘,在c++的cstring头文件中。

在c语言中,由于字符串本质上其实就是以’0’作为结尾的特殊字符数组,所以定义字符串时,必须保证字符串存储的最后一个元素为’0’。. 必须在字符串末尾加上’0’,不然的话,它就仅仅是一个字符数组,而不是我们所需要的字符串。当我们给定字符串具体长度时,长度+1,不然的话,它也仅仅是一个字符数组,而不是我们所需要的字符串。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值