关于siazeof(a)、strlen(a)、a.length()、a.size()

关于siazeof(a)、strlen(a)、a.length()、a.size()
  1. **sizeof()**返回一个对象或者类型所占的内存字节数(获取内存空间的大小)

    适用范围:(1)字符串(2)字符、整型等各种数组,(3)int、flooat类型占的字节数

    记住头文件是cstring,string不可以

  2. strlen只能够计算字符串的长度,其他数组不可以

    适用范围:(1)字符串%s(2)字符数组

    注意:计算长度不包括“\0”,遇到就停止

    记住头文件是cstring,string不可以

  3. **a.length()**计算字符串(string)变量的函数 ,字符数组不可以 ,计算长度也不包括“\0”

    适用范围:(1)字符串%s或者sring

    注意:计算长度不包括“\0”

  4. 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;
    }