C++获取字符串长度详解
C++ 详解 获取 字符串 长度
2023-06-13 09:11:59 时间
String 类型对象包括三种求解字符串长度的函数:size() 和 length()、 maxsize() 和 capacity():
size() 和 length():这两个函数会返回 string 类型对象中的字符个数,且它们的执行效果相同。 max_size():max_size() 函数返回 string 类型对象最多包含的字符数。一旦程序使用长度超过 max_size() 的 string 操作,编译器会拋出 length_error 异常。 capacity():该函数返回在重新分配内存之前,string 类型对象所能包含的最大字符数。
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)。
22096.html
chtml相关文章
- c++语言截取字符串,详解C++ string常用截取字符串方法
- C++多线程编程:同步之互斥量Mutex「建议收藏」
- 详解二叉树遍历(C/C++)
- 剑指offer No.4 重建二叉树(C++|Java版本)
- C++最佳实践 | 3. 安全性
- C++ 条件变量使用详解
- C++字符串加密_c++字符串连接函数
- c++混合js编程
- C/C++ 关于运算符重载笔记
- c 线程安全的单例模式-详解C++实现线程安全的单例模式
- Pytorch轻松学-RetinaNet模型导出与C++部署
- C++中的继承
- C++命名空间详解编程语言
- C/C++经典网站详解编程语言
- C++中的类型转换方法详解编程语言
- 【转】c++中的new/delete详解编程语言
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法详解编程语言
- C++函数重载详解
- C++容器(STL容器)
- C++输出流迭代器(STL输出流迭代器)详解
- C++ valarray获取(访问)对象方法详解
- C++ cin.getline用法详解
- 什么是C++面向对象编程
- 在什么情况下,Java比C++慢很多?
- 深入c++中临时对象的析构时机的详解
- C字符串与C++字符串的深入理解
- C++函数参数取默认值的深入详解
- C/C++数据对齐详细解析