C++中获取字符串长度的函数有哪些-创新互联

本篇文章为大家展示了C++中获取字符串长度的函数有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

成都创新互联公司主要从事成都网站制作、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务喀什,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

C/C++ strlen(str)、str.length()、str.size()、sizeof(str)都可以求字符串长度。

其中str.length()、str.size()、sizeof(str)是用于求string类对象的成员函数

strlen(str)是用于求字符数组的长度,其参数是char*。

补充知识:获取字符串长度的函数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。

上述内容就是C++中获取字符串长度的函数有哪些,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


文章标题:C++中获取字符串长度的函数有哪些-创新互联
文章源于:http://myzitong.com/article/pdpih.html