🎶string - 字符串
STL中string类的详细介绍
string 容器基本概念
C风格字符串(以\0结尾的字符数组)太过复杂,难于掌握,不太适合大程序的开发,所以C++STL中定义了一种string类,在头文件<string>中。
string 和 C风格字符 串对比
char*是一个指针,string是一个类string封装了char*,管理这个字符串,是一个char*型的容器。string封装了很多实用的成员方法查找
find,拷贝copy,删除erase,替换replace,插入insert......不用考虑内存释放和越界
string管理char*所分配的内存,每一次string的复制/赋值,取值都由string类负责维护,不用担心复制越界和取值越界等。
string本质上是一个动态的char数组。
string 容器常用操作
string 构造函数
string 基本赋值操作
= 赋值操作符
= 赋值操作符 assign成员函数
assign成员函数string 存取字符操作
[]下标获取操作符
[]下标获取操作符使用下标操作符获取字符时,如果下标越界,程序将会强制终止。
at成员函数
at成员函数使用at方法获取字符时,如果下标越界,at方法内部会抛出异常(exception),可以使用try-catch捕获并处理该异常。示例如下:
关于C++的异常处理用法可以查看相关教程了解,参考教程:
https://www.runoob.com/cplusplus/cpp-exceptions-handling.html
后续教程将默认读者了解C++异常处理的相关知识点。
string 拼接操作
+=复合操作符
+=复合操作符append成员函数
append成员函数string 查找和替换
find成员函数
find成员函数当查找失败时,
find方法会返回-1,-1已经被封装为string的静态成员常量string::npos。
rfind成员函数
rfind成员函数replace成员函数
replace成员函数string 比较操作
compare成员函数
compare成员函数compare函数依据字典序比较,在当前字符串比给定字符串小时返回-1,在当前字符串比给定字符串大时返回1,相等时返回0。
比较操作符
string类重载了所有的比较操作符,其含义与比较操作符本身的含义相同。
string 子串
substr成员函数
substr成员函数string 插入和删除操作
insert 成员函数
insert 成员函数返回值是插入后的字符串结果,
erase同理。其实就是指向自身的一个引用。
erase 成员函数
erase 成员函数默认一直删除到末尾。
string 和 C-Style 字符串的转换
string 和 C-Style 字符串的转换string 转 const char*
string 转 const char*const char* 转 string
const char* 转 string和 string 相关的全局函数
注:有的可能需要C++11标准。
大小写转换
如果想要对整个字符串进行大小写转化,则需要使用一个for循环,或者配合和algorithm库来实现。例如:
字符串和数字的转换
int/double 转 string
int/double 转 stringc++11标准新增了全局函数
std::to_string,十分强大,可以将很多类型变成string类型。
string 转 double / int
string 转 double / int与之类似的在同一个库里的还有一组基于字符数组的函数如下。
至此,读者应当详细了解了C++STL中string容器的各种用法以及其他一些字符串处理的常用函数。可能量有些大,无法一下子记住,可以暂时留个印象,待到使用时多翻一翻,慢慢就记住了。
最后更新于
这有帮助吗?