字符串常用函数和细节
2025-12-28 16:02:04
发布于:四川
字符串的常用函数(头文件:#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开始,越界**会导致运行时错误。
这里空空如也







有帮助,赞一个