C++ 字符(串)处理方法

本文最后更新于 2025年8月14日 星期四 10:51

本文略去了一些深入人心的方法,目的供查阅使用。

字符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <cctype>
isalpha(ch);
isalnum(ch); // 字母或数字
isdigit(ch); // 0-9
isxdigit(ch); // 16进制数字
islower(ch);
isupper(ch);
iscntrl(ch); // 控制字符
isgraph(ch); // 不是空格但可打印
isprint(ch); // 可打印字符
ispunct(ch); // 标点
isspace(ch); // \t \n \f \v \r 和 ' '
toupper(ch);
tolower(ch);

C 风格字符串

1
2
3
4
5
#include <cstring>
strlen(p); // 返回p的长度,空字符不计算在内
strcmp(p1, p2); // 比较p1和p2的大小,相等返回0,p1>p2返回正数,p1<p2返回负数
strcat(p1, p2); // 将p2连接到p1的后面
strcpy(p1, p2); // 将p2拷贝给p1

C++ 风格字符串

1
2
3
4
5
6
7
#include <string>
str.substr(pos, n); // 从pos开始至末尾或n
str.compare(str2); // 相等返回0,<返回负数
str.find(A, pos); // 从pos或头开始查找A,返回位置
str.erase(pos, n); // pos开始删除n个字符
str.insert(pos, str2); // 插入
str.replace(pos, n, str2); // 替换

输入 char

1
2
3
4
5
6
7
ch = cin.get();              // 接收第一个字符并赋值给ch
cin.get(charArray, len); // 接收一行长度不超过len的字符串存入charArray,连续多行需每两行间cin.get();
cin.getline(charArray, len); // 接收一行长度不超过len的字符串存入charArray
cin.getline(charArray, len, ch); // 接收一行长度不超过len的字符串存入charArray,读到ch前一个字符停止

#include <string>
getline(cin, str);

注意

如果字符串的输入接在 cin >> ch; 输入流后,中间必须增加 cin.ignore(); 用以吞掉换行符。

如:cin.ignore(100, '\n');


C++ 字符(串)处理方法
https://blog.gtbcamp.cn/article/cpp-string/
作者
Great Thunder Brother
发布于
2023年2月1日
更新于
2025年8月14日
许可协议