C++获取字符串长度详解
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。
上述几个函数的使用方法如下程序所示:
- #include <iostream>
- #include <string>
- using namespace std;
- int main ()
- {
- int size = 0;
- int length = 0;
- unsigned long maxsize = 0;
- int capacity=0;
- string str ("12345678");
- string str_custom;
- str_custom = str;
- str_custom.resize (5);
- size = str_custom.size();
- length = str_custom.length();
- maxsize = str_custom.max_size();
- capacity = str_custom.capacity();
- cout << "size = " << size << endl;
- cout << "length = " << length << endl;
- cout << "maxsize = " << maxsize << endl;
- cout << "capacity = " << capacity << endl;
- return 0;
- }
程序执行结果为:
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++获取字符串长度详解相关推荐
- php的取数组长度,php获取数组长度详解
php获取数组长度详解 在php中获取数组长度方法很简单,php为我们提供了两个函数可以计算一维数组长度,如count,sizeof都可以直接统计数组长度哦,下面我们来看几个实例吧. php如何获取数 ...
- java 获取字符串_详解Java String字符串获取每一个字符及常用方法
前言 对于字符串的操作,我们常用的就是trim()去除前后空格.subString()截取子字符串,其他的用的不多.下表中是字符串常用的方法.大家要记一记啊,特别是chartAt()方法比较重要的.因 ...
- 站长在线python精讲:在Python中使用len()函数计算字符串的长度详解
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用len()函数计算字符串的长度详解>.本知识点主要内容有:在Python中使用len()函数计算字符串在 ...
- c语言中用于获取字符串长度的函数是,C语言中求字符串长度的函数的几种实现方法...
C语言中求字符串长度的函数的几种实现方法 1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) { ass ...
- Lua中获取字符串长度
偶然的情况下,需要用Lua代码获取字符串的长度,结果发现结果和自己想象的不一样,一个汉字算两个英文字符的时代已经快过去了,一个中文字符打印出来的长度为3,引起了我的好奇,查找资料了解了具体原因 不同的 ...
- 【自学Python】Python获取字符串长度
Python获取字符串长度 Python获取字符串长度教程 在 Python 中要想获取 字符串 长度可以使用 len() 函数. Python len()函数详解 定义 我们将要获取的字符串的长度, ...
- python中字符串类型的encode()方法_第五章 Python字符串常用方法详解
5.1 Python字符串拼接(包含字符串拼接数字) 在 Python中拼接(连接)字符串很简单,可以直接将两个字符串紧挨着写在一起,具体格式为: strname = "str1" ...
- CTF pwn题之格式化字符串漏洞详解
格式化字符串漏洞详解 概念 如何利用 基本利用方式讲解 常用payload总结 pwntools -- FmtStr类 求偏移 地址泄露 任意地址写 一个例子 总结 概念 格式化字符串漏洞的成因在 ...
- mysql数据库的字符串表示什么意思_MySQL数据库的字符串类型详解(01)
Mysql的数据类型主要分为三类:数字类型.字符串(字符)类型.日期和时间类型,由于时间紧迫,根据学习的需要 数字类型暂不做详解,等待有时间了在修改此文档,此文主要介绍mysql 数据类型中的字符串类 ...
最新文章
- 向uliweb中添加查找配置项功能
- Networking 基本术语/概念
- C++ new一个数组方法和初始化的方法
- java中值传递和引用传递
- Tomcat7性能优化
- 用python画图代码意思_Python科学画图代码分享
- 华为服务器设置iBMC管理网口IP地址,开启Monitor图文教程
- win7查看硬盘序列号
- 从程序员到项目经理(28):该死的结果导向(只看结果,不问过程到底行不行?)...
- tomcat8+linux+IDEA配置远程代码调试
- python动态获取cookie_scrapy爬虫使用Ghost.py动态获取cookie
- C语言正交表测试用例,测试用例设计之正交表法和配对测试法
- vue H5 唤醒app
- PyS60记事本源码
- 添加用户-查看用户列表-禁止默认root登陆
- 牧牛区块链,区块链经济学应该关注的问题
- [参文]GCN+交通
- 医疗人工智能发展趋势及机遇
- 74LS85的IP核设计
- RK3399PRO-RKNN_DEMO模块开发最新资料下载