🌟 C++ string 常用方法 Cheat Sheet
✂️ 1. size() / length()
作用:得到字符串长度
string s = "hello";
cout << s.size(); // 5
cout << s.length(); // 5(完全一样)🔍 2. s[i](访问字符)
作用:取(或改)第 i 个字符
下标从 0 开始!
string s = "abc";
cout << s[0]; // a
s[1] = 'Z';
cout << s; // aZc🔍 3. find()
作用:查找子串出现的位置
找不到返回 string::npos
string s = "hello world";
int pos = s.find("world"); // pos = 6判断是否找到:
if (pos != string::npos) { /* found */ }🔁 4. substr(pos, len)
作用:从 pos 开始,截取 len 个字符
string s = "abcdef";
cout << s.substr(2, 3); // cde➕ 5. 拼接:+ / +=
string a = "hello", b = "world";
cout << a + b; // helloworld
a += "!!!"; // hello!!!➕ 6. push_back() / pop_back()
用于快速在末尾添加或删除字符(信奥常用模拟方法)
string s = "abc";
s.push_back('d'); // abcd
s.pop_back(); // abc🧽 7. clear()
清空字符串:
s.clear();🙋 8. empty()
判断字符串是否为空:
if (s.empty()) cout << "empty!";🔄 9. reverse()(需 <algorithm>)
常用于回文判断、倒置字符串:
#include <algorithm>
reverse(s.begin(), s.end());🔤 10. 字符大小写转换(需 <cctype>)
char c = 'a';
c = toupper(c); // 'A'
c = tolower(c); // 'a'🎯 信奥训练中最常用 Top 6
| 排名 | 方法 | 用途 |
|---|---|---|
| ① | s.size() | 遍历、判断长度 |
| ② | s[i] | 逐字符处理 |
| ③ | find() | 查模式字符串 |
| ④ | substr() | 切片、分割 |
| ⑤ | push_back() / pop_back() | 栈式模拟 |
| ⑥ | reverse() | 回文、倒置 |
📌 最小上手模板(比赛常用)
string s;
cin >> s;
int n = s.size(); // 取长度
char c = s[0]; // 访问字符
string t = s.substr(1, 3); // 截取
if (s.find("abc") != string::npos) { }
s.push_back('x'); // 末尾加字符
s.pop_back(); // 删除末尾字符
reverse(s.begin(), s.end()); // 反转