Post

C++ string库

C++ string库

1 初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream>
#include<string>

using namespace std;

int main(){
    string s;               //  默认初始化,一个空白的字符串
    string s1("ssss");      // s1是字面值"ssss"的副本
    string s2(s1);          // s2是s1的副本
    string s3 = s2;         // s3是s2的副本
    string s4(10, '4');     // s4初始化
    string s5 = "Andre";    // 拷贝初始化
    string s6 = string(10, 'c');    // 可拷贝初始化,生成一个初始化好的对象,拷贝给s6

    char cs[] = "12345";
    string s7(cs, 3);       // 复制字符串cs的前三个字符到s当中

    string s8 = "abcde";
    string s9(s8, 2);

    string s10 = "asdsfasdgf";
    string s11(s10, 3, 4);  // s4是s3从下标s开始4个字符的拷贝,超出s10.size出现未定义
    return 0;
}

2 string读入

1
2
3
string s;
cin >> s;   //不能读入空格,以空格,制表符,回车符作为结束标志
getline(cin, s); //可以读入空格和制表符,以回车符作为结束的标志

3 常用成员函数

  • size() 或 length():返回字符串的长度。
  • empty():检查字符串是否为空。
  • substr(pos, len):返回从位置 pos 开始,长度为 len 的子字符串。
  • append(str):在字符串末尾追加另一个字符串 str
  • insert(pos, str):在位置 pos 插入另一个字符串 str
  • erase(pos, len):从位置 pos 开始删除长度为 len 的子字符串。
  • replace(pos, len, str):从位置 pos 开始替换长度为 len 的子字符串为 str
  • find(str, pos):从位置 pos 开始查找子字符串 str 的位置,如果找到则返回位置,否则返回 std::string::npos
This post is licensed under CC BY 4.0 by the author.