获取字符串长度的函数sizeof()、strlen()、length()、size()详解和区别 |
您所在的位置:网站首页 › 取数组的长度size › 获取字符串长度的函数sizeof()、strlen()、length()、size()详解和区别 |
在C++中计算长度的函数有四种,它们分别是sizeof() ,size(),strlen(),str.length()。
一.sizeof()和strlen()两者区别: 1)sizeof操作符的结果类型是size_t,该类型保证能容纳实现所建立的最大对象的字节大小。 2)sizeof是运算符,strlen是函数。 3)sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。 4)sizeof在编译时期就计算出来,strlen在运行之后才能计算出来。 5)strlen计算字符串的具体长度(只能是字符串),不包括字符串结束符。返回的是字符个数。sizeof计算声明后所占的内存数(字节大小),不是实际长度。 举例: 1)char* ss = "0123456789"; sizeof(ss)为4,ss是指向字符串常量的字符指针,sizeof 获得的是指针所占的空间,则为4 sizeof(*ss)为1,*ss是第一个char字符,则为1 2)char ss[] = "0123456789"; sizeof(ss)为11,ss是数组,计算到'\0'位置,因此是(10+1) sizeof(*ss)为1,*ss是第一个字符 3)char ss[100] = "0123456789"; sizeof(ss)为100,ss表示在内存中预分配的大小,100*1 strlen(ss)为10,它的内部实现用一个循环计算字符串的长度,直到'\0'为止。 4)int ss[100] = "0123456789"; sizeof(ss)为400,ss表示在内存中预分配的大小,100*4 strlen(ss)错误,strlen参数只能是char*,且必须是以'\0'结尾 5)char[] a={'a','b','c'}; sizeof(a)的值应该为3。 char[] b={"abc"}; sizeof(b)的值应该是4。 6)若string str={'a','b','c','\0','X'}; 那么sizeof(str)为5,strlen(str)为3。 二.string中的length()和size() c++中,在获取字符串长度时,size()函数与length()函数作用相同。 例如:string str = “wang” 则,str.length() = 4。 除此之外,size()函数还可以获取vector类型的长度。 例如:vector < int> num(15,2) 则,num.size() = 15。 参考:https://blog.csdn.net/z_qifa/article/details/77744482
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |