C++字符串类使用笔记

zxl19 2022-12-28

我的C++字符串类使用笔记。

字符串类

  1. C++可以使用字符数组表示字符串,存在诸多不便:

     // 将字符串常量赋值给指向常量的指针
     const char* str = "program";
     // 将字符串变量赋值给字符数组
     char str1[8] = {'p', 'r', 'o', 'g', 'r', 'a', 'm', '\0'};
     char str2[8] = "program";
     char str3[] = "program";
    
    • 字符串操作需要使用<cstring>头文件中定义的字符串处理函数;
    • 当字符串长度不确定时,需要手动进行动态内存分配;
  2. C++将字符串相关操作进行了封装,形成了字符串类string
  3. 严格来说,string是类模板basic_string的一个特化实例,但是其使用时的特点与类相同,可以当做一个类来使用;
  4. 字符串类不是标准模板类(Standard Template Library,STL)的一部分;
  5. 使用时需要包含头文件:

     #include <string>
    

操作符

操作符 示例 含义
+ s + t 将串st连接成一个新串
= s = t t更新s
+= s += t 等价于s = s + t
== s == t 判断st是否相等
!= s != t 判断st是否不等
< s < t 判断s是否小于t
<= s <= t 判断s是否小于或等于t
> s > t 判断s是否大于t
>= s >= t 判断s是否大于或等于t
[] s[i] 访问串中下标为i的字符,也可通过成员函数s.at(i)

常用基本功能

size_t s.size()
bool s.empty()
void s.push_back(char c)                        // 追加单个字符
void s.pop_back()
string s.substr(size_t pos, size_t len)         // 取子字符串
void s.append(const string& str)                // 追加字符串

遍历字符串

for (size_t i = 0; i < s.size(); i++)           // 常规方式
for (char c : s)                                // C++11引入
for (char& c : s)                               // C++11引入,速度更快

参考

  1. 《C++语言程序设计》
  2. cplusplus
  3. 字符串1-CSDN博客
  4. 字符串2-CSDN博客
  5. 字符串3-CSDN博客