【c++】string类常见接口函数
温馨提示:这篇文章已超过387天没有更新,请注意相关的内容是否还可用!
🔥个人主页:Quitecoder
🔥专栏:c++笔记仓
朋友们大家好啊,本节我们来到STL内容的第一部分:string类接口函数的介绍
目录
- 1.string类的认识
- 2.常见接口讲解
- 2.1 string类对象的常见构造
- 2.2 对string对象的遍历和修改
- 2.3 string类对象的容量操作
- 2.4 string类对象的修改操作
- 注意事项:
1.string类的认识
给大家分享一个c++文档库:
https://legacy.cplusplus.com/
字符串类是代表字符序列的对象 标准字符串类为这类对象提供了支持,其接口类似于标准字节容器的接口,但增加了专门用于操作单字节字符字符串的特性 通过下面这串代码:
typedef basic_string string;
对应文档内容:
字符串类是basic_string类模板的一个实例化,它使用char(即字节)作为其字符类型,并使用默认的char_traits和分配器类型
请注意,这个类独立于使用的编码处理字节:如果用来处理多字节或变长字符(如UTF-8)的序列,这个类的所有成员(如length或size),以及其迭代器,仍将以字节(而非实际编码的字符)的方式操作
简单总结:
- string是表示字符串的字符串类
- 该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作
- string在底层实际是:basic_string模板类的别名,typedef basic_string string;
- 不能操作多字节或者变长字符的序列
在使用string类时,必须包含#include头文件以及using namespace std;
2.常见接口讲解
2.1 string类对象的常见构造
构造函数
🔥string()
这个函数的功能是构建一个空字符串,也是默认构造
🔥string(const char* s)
用C-string来构造string类对象
用法如下:
string s1("hello world");🔥string (const string&s)
拷贝构造函数,用法:
string s1("hello world"); string s2(s1);🔥string (const string& str, size_t pos, size_t len= npos);
我们来看文档对这一部分的讲解:
拷贝从pos位置开始,向后len长度,如果超过剩余长度,则遍历到字符串的末尾
注意,这里有个npos的缺省值,如果我的len给的nops,也会遍历到字符串末尾,简单了解一下npos
npos是一个无符号常量整数-1,无符号整数-1即为整形的最大值232-1
用法:
string s1("hello world"); string s2(s1); string s3(s1, 5, 3); string s4(s1, 5, 10); string s5(s1, 5); cout cout s[i]++; } cout cout cout cout cout string s; size_t sz = s.capacity(); cout s.push_back('a'); if (sz != s.capacity()) { sz = s.capacity(); cout cout // 找到了子字符串 "World" } // 找到了第二个 "World" }
- 注意事项:







