字符串的常用函数(头文件:#INCLUDE <STRING>)
函数 功能 示例 size()/length() 返回长度 str.size() substr(pos, len) 截取子串 str.substr(2,3)(从下标2取3个字符) find(str) 查找子串位置 str.find("***")(返回首位置或npos) replace(pos, len, newstr) 替换子串 str.replace(2,3,"***") sort(s.begin(), s.end()) 排序(需#include <algorithm>) sort(str.begin(), str.end())
STRING和字符数组的区分点:
功能 C++ std::string 方法 C 语言风格函数 (用于 char[]) 备注 (Notes) 定义 string s; char s[100]; C++ string 更安全、更灵活 求长度 s.length() s.size() strlen(s) strlen 不计算\0,sizeof计算数组总大小 输入 cin >> s;``带空格的输入``getline(cin, s); cin >> s; cin.getline(s,n); scanf("%s", s); getline 可以读取空格 拼接 s1 + s2 / s1.append(s2) strcat(s1, s2)
C++ 的+更直观安全 比较 s1 == s2 / s1 < s2 等 strcmp(s1, s2) C++ 的比较符更直观 查找 s.find(sub) strstr(s, sub) / strchr(s, ch) 返回值类型不同,C++ 返回size_t 截取 s.substr(pos, len) strncpy(dest, s+pos, len) C++ 更直接 替换 s.replace(pos, len, sub) 手动实现或使用strncpy组合 C++ 功能强大 插入 s.insert(pos, sub) 手动实现,较为复杂 C++ 功能强大 删除 s.erase(pos,len)
或 s.erase(it) 手动实现,较为复杂 C++ 功能强大
易错点:
cin >> str 遇空格终止,读整行需用 getline(cin, str)
字符串下标:从0开始,越界**会导致运行时错误。