🌟 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()); // 反转