欢迎光临散文网 会员登陆 & 注册

C++如何获取字符串长度

2022-10-07 21:33 作者:游侠翻滚  | 我要投稿

速读

很显然size与length是以空格为中断的,所以len1的长度还包括了第二个Ikun前面的空格

在这里插入图片描述

Char

strlen()

strlen()函数:

  1. 需要添加头文件<string.h>,而且参数只能是char数组

  2. 而且结尾必须是\0(即字符数组不能满,因为满了结尾就不是\0,会接着向下检索到\0为止)

  3. 啊哦char c[6]{"kunkun"}; 这样是错误的嗷 直接没法进行编译,编译器直接帮我们解决问题2

  4. 通过上面的图,我们可以得出strlen()是可以统计空格的。

String

String 类型对象包括三种求解字符串长度的函数:size() 和 length()、 maxsize() 和 capacity():

  • size() 和 length():这两个函数会返回 string 类型对象中的字符个数,且它们的执行效果相同。

  • max_size():max_size() 函数返回 string 类型对象最多包含的字符数。一旦程序使用长度超过 max_size() 的 string 操作,编译器会拋出 length_error 异常。

  • capacity():该函数返回在重新分配内存之前,string 类型对象所能包含的最大字符数。


string 类型对象还包括一个 reserve() 函数。调用该函数可以为 string 类型对象重新分配内存。重新分配的大小由其参数决定。reserve() 的默认参数为 0。

上述几个函数的使用方法如下程序所示:


程序执行结果为:

由此程序可知,string 类型对象 str_custom 调用 reserve() 函数时,似乎并没有起到重新分配内存的目的(笔者所用编译器为 Visual C++6.0)。

修改上述代码,删除语句 str_custom.reserve (5),在代码 str_custom = str 之后如下添加代码:

修改后程序的执行结构如下:

重新设置 string 类型对象 str_custom 的大小之后,重新求解 str_custom 的大小,其执行效果与设置的数值一致(均为 5)。



部分摘自http://c.biancheng.net/view/1444.html

              https://blog.csdn.net/m0_51213124/article/details/116091281

C++如何获取字符串长度的评论 (共 条)

分享到微博请遵守国家法律