C++ string 类常用函数总结

基础操作

函数 功能 示例 结果
size() / length() 获取字符串长度 s = "abcd"; s.size() 4
s[i] / s.at(i) 访问指定位置字符 s = "abcd"; s[0] 'a'
getline(cin, s) 读取整行输入 getline(cin, s); 包含空格

查找与截取

函数 功能 示例 结果
find(substr) 查找子串首次位置 s="abcdef"; s.find("cd") 2
find(substr, x) 从位置 x 后查找 s="abab"; s.find("ab",1)
substr(i, len) 截取子串 s="abcdef"; s.substr(3,2) "de"
substr(i) 从 i 截取到末尾 s="abcdef"; s.substr(3) "def"

修改操作

函数 功能 示例 结果
erase(i, len) 删除子串 s="abcdef"; s.erase(2,3) "abf"
insert(i, str) 插入字符串 s="abcdef"; s.insert(2,"+") "ab+cdef"
replace(i,len,ss) 替换子串 s="abcdef"; s.replace(2,1,"123") "ab123def"

字符处理

函数 功能 示例 结果
isalpha(c) 判断字母 isalpha('a') true
islower(c) 判断小写 islower('a')
isupper(c) 判断大写 isupper('A')
isdigit(c) 判断数字 isdigit('1')
tolower(c) 转小写 tolower('A') 'a'
toupper(c) 转大写 toupper('a') 'A'

迭代器与转换

函数 功能 示例 结果
s.begin() 起始迭代器 sort(s.begin(),s.end()) 排序字符串
s.end() 结束迭代器 reverse(s.begin(),s.end()) 反转字符串
stoi(s) 字符串转 int stoi("123") 123
stoll(s) 字符串转 long long stoll("123456789123") 123456789123
stof(s) 字符串转 float stof("12.358") 12.358
to_string(n) 数值转字符串 to_string(123) "123"

使用说明

  1. 字符处理函数需包含头文件 <cctype>
  2. C++11 特性需编译时添加 -std=c++11 参数
  3. string::npos 表示未找到(值为 -1),判断示例:
    if (s.find("abc") == string::npos) {
        cout << "Not found";
    }
    

示例代码

#include <iostream>
#include <string>
#include <cctype>
#include <algorithm>
using namespace std;

int main() {
    // 读取整行
    string s;
    getline(cin, s);
    
    // 字符处理
    for (char &c : s) {
        if (islower(c)) c = toupper(c);
    }
    
    // 查找替换
    size_t pos = s.find("WORLD");
    if (pos != string::npos) {
        s.replace(pos, 5, "C++");
    }
    
    // 类型转换
    int num = stoi("42");
    string num_str = to_string(3.14159);
    
    cout << s << endl;
    cout << num * 2 << endl;
    cout << num_str.substr(0,4) << endl;
    
    return 0;
}

编译命令

g++ -std=c++11 your_program.cpp -o output