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。

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

  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. int main ()
  5. {
  6. int size = 0;
  7. int length = 0;
  8. unsigned long maxsize = 0;
  9. int capacity=0;
  10. string str ("12345678");
  11. string str_custom;
  12. str_custom = str;
  13. str_custom.resize (5);
  14. size = str_custom.size();
  15. length = str_custom.length();
  16. maxsize = str_custom.max_size();
  17. capacity = str_custom.capacity();
  18. cout << "size = " << size << endl;
  19. cout << "length = " << length << endl;
  20. cout << "maxsize = " << maxsize << endl;
  21. cout << "capacity = " << capacity << endl;
  22. return 0;
  23. }

程序执行结果为:

size = 8
length = 8
maxsize = 2147483647
capacity = 15

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

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

str_custom.resize (5);

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

size = 5
length = 5
maxsize = 2147483647
capacity = 15

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

C++获取字符串长度详解相关推荐

  1. php的取数组长度,php获取数组长度详解

    php获取数组长度详解 在php中获取数组长度方法很简单,php为我们提供了两个函数可以计算一维数组长度,如count,sizeof都可以直接统计数组长度哦,下面我们来看几个实例吧. php如何获取数 ...

  2. java 获取字符串_详解Java String字符串获取每一个字符及常用方法

    前言 对于字符串的操作,我们常用的就是trim()去除前后空格.subString()截取子字符串,其他的用的不多.下表中是字符串常用的方法.大家要记一记啊,特别是chartAt()方法比较重要的.因 ...

  3. 站长在线python精讲:在Python中使用len()函数计算字符串的长度详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用len()函数计算字符串的长度详解>.本知识点主要内容有:在Python中使用len()函数计算字符串在 ...

  4. c语言中用于获取字符串长度的函数是,C语言中求字符串长度的函数的几种实现方法...

    C语言中求字符串长度的函数的几种实现方法 1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) { ass ...

  5. Lua中获取字符串长度

    偶然的情况下,需要用Lua代码获取字符串的长度,结果发现结果和自己想象的不一样,一个汉字算两个英文字符的时代已经快过去了,一个中文字符打印出来的长度为3,引起了我的好奇,查找资料了解了具体原因 不同的 ...

  6. 【自学Python】Python获取字符串长度

    Python获取字符串长度 Python获取字符串长度教程 在 Python 中要想获取 字符串 长度可以使用 len() 函数. Python len()函数详解 定义 我们将要获取的字符串的长度, ...

  7. python中字符串类型的encode()方法_第五章 Python字符串常用方法详解

    5.1 Python字符串拼接(包含字符串拼接数字) 在 Python中拼接(连接)字符串很简单,可以直接将两个字符串紧挨着写在一起,具体格式为: strname = "str1" ...

  8. CTF pwn题之格式化字符串漏洞详解

    格式化字符串漏洞详解 概念 如何利用 基本利用方式讲解 常用payload总结 pwntools -- FmtStr类 求偏移 地址泄露 任意地址写 一个例子 总结 概念   格式化字符串漏洞的成因在 ...

  9. mysql数据库的字符串表示什么意思_MySQL数据库的字符串类型详解(01)

    Mysql的数据类型主要分为三类:数字类型.字符串(字符)类型.日期和时间类型,由于时间紧迫,根据学习的需要 数字类型暂不做详解,等待有时间了在修改此文档,此文主要介绍mysql 数据类型中的字符串类 ...

最新文章

  1. 向uliweb中添加查找配置项功能
  2. Networking 基本术语/概念
  3. C++ new一个数组方法和初始化的方法
  4. java中值传递和引用传递
  5. Tomcat7性能优化
  6. 用python画图代码意思_Python科学画图代码分享
  7. 华为服务器设置iBMC管理网口IP地址,开启Monitor图文教程
  8. win7查看硬盘序列号
  9. 从程序员到项目经理(28):该死的结果导向(只看结果,不问过程到底行不行?)...
  10. tomcat8+linux+IDEA配置远程代码调试
  11. python动态获取cookie_scrapy爬虫使用Ghost.py动态获取cookie
  12. C语言正交表测试用例,测试用例设计之正交表法和配对测试法
  13. vue H5 唤醒app
  14. PyS60记事本源码
  15. 添加用户-查看用户列表-禁止默认root登陆
  16. 牧牛区块链,区块链经济学应该关注的问题
  17. [参文]GCN+交通
  18. 医疗人工智能发展趋势及机遇
  19. 74LS85的IP核设计
  20. RK3399PRO-RKNN_DEMO模块开发最新资料下载

热门文章

  1. Oracle中rownum用法警示
  2. css中实现div的显示和隐藏
  3. Windows中动态磁盘管理
  4. IIS7.5配置对PHP的支持
  5. [网络安全自学篇] 十八.XSS跨站脚本攻击原理及代码攻防演示(一)
  6. 搜索引擎和知识图谱那些事 (上).基础篇
  7. Python之调用JS的方式
  8. hive中如何进行按周计算
  9. python人工智能——机器学习——分类算法-朴素贝叶斯算法
  10. 【前端4】bootstrap:栅格系统,隔行/触摸换色,分页/导航条,模态框/轮播图,旅游首页