关于siazeof(a)、strlen(a)、a.length()、a.size()
关于siazeof(a)、strlen(a)、a.length()、a.size()
-
**sizeof()**返回一个对象或者类型所占的内存字节数(获取内存空间的大小)
适用范围:(1)字符串(2)字符、整型等各种数组,(3)int、flooat类型占的字节数
记住头文件是cstring,string不可以
-
strlen只能够计算字符串的长度,其他数组不可以
适用范围:(1)字符串%s(2)字符数组
注意:计算长度不包括“\0”,遇到就停止
记住头文件是cstring,string不可以
-
**a.length()**计算字符串(string)变量的函数 ,字符数组不可以 ,计算长度也不包括“\0”
适用范围:(1)字符串%s或者sring
注意:计算长度不包括“\0”
-
a.size()是string类定义的一个返回字符串大小的函数。
获取字符串长度时与length()函数作用同
适用范围:
- 字符串%s或者sring
- vector类型的长度
- 数组不可以
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> using namespace std; int main(){ int a[]={1,2,3,4,5}; char b[]="hello123" ; string c="hello123" ; int len=sizeof(a)/sizeof(a[0]); printf("计算整型数组int a[]={1,2,3,4,5}:\n"); printf("sizeof(a[0])计算整型数组a第一个字符所占内存大小:%d\n",sizeof(a[0])); printf("sizeof(a)计算整个整型数组a所占内存大小(int 4):%d\n",sizeof(a)); printf("sizeof(a)/sizeof(a[0])计算整型数组a的元素个数为:%d\n",len); printf("----------------------------------------------------------------------------\n"); printf("计算整型数组char b[]=“hello123” :\n"); printf("sizeof(b[0])计算字符数组b 第一个字符所占内存大小为:%d\n",sizeof(b[0])); printf("sizeof(b)计算整个字符数组内存大小(char 1 +“0”):%d\n",sizeof(b)); printf("strlen(b)计算整个字符数组的长度(char 1 无“0”):%d\n",strlen(b));//cstring printf("----------------------------------------------------------------------------\n"); printf("计算字符串string c=“hello123” :\n"); printf("sizeof(c[0])计算字符串第一个字符所占内存大小:%d\n",sizeof(c[0])); printf("sizeof(c)计算整个字符串长度所占内存大小:%d\n",sizeof(c)); printf("c.length()计算字符串长度,不可字符数组( 无“0”):%d\n",c.length()); printf("c.size() 计算字符串长度,不可字符数组( 无“0”):%d\n",c.size()); return 0; }