一、字符串函数(<string> 头文件)
| 功能 | 函数 | 说明 |
|---|---|---|
| 带空格输入 | getline(cin, str); | 读取整行(包括空格) |
| 获取长度 | str.size() 或 str.length() | 返回字符串长度 |
| 查找子串 | str.find(str1); | 返回子串 str1 首次出现的索引,未找到返回 string::npos |
| 插入子串 | str.insert(a, str1); | 在索引 a 处插入子串 str1 |
| 提取子串 | str.substr(a, b); | 从索引 a 开始提取长度为 b 的子串(省略 b 时截取到末尾) |
| 替换子串 | str.replace(a, b, str1); | 将索引 a 开始的 b 个字符替换为 str1 |
| 翻转字符串 | reverse(str.begin(), str.end()); | 需包含 <algorithm>,原地翻转字符串 |
二、数学库函数(<cmath> 头文件)
| 函数原型 | 样例 | 说明 |
|---|---|---|
double max(double x, double y); | ans = max(x, y); | 返回 x 和 y 的最大值 |
double min(double x, double y); | ans = min(x, y); | 返回 x 和 y 的最小值 |
double sqrt(double x); | sqrt(9) | 返回 √x(平方根) |
double pow(double x, double y); | ans = pow(x, y); | 返回 x 的 y 次幂(x^y) |
double abs(double x); | abs(-10) | 返回 x 的绝对值(整数用 abs()) |
double ceil(double x); | ceil(2.1) | 向上取整(≥ x 的最小整数) |
double floor(double x); | floor(2.9) | 向下取整(≤ x 的最大整数) |
double round(double x); | round(2.9) | 四舍五入取整 |
三、字符数组 vs 字符串(string 类)
| 操作 | 字符数组(C 风格) | 字符串(string 类) |
|---|---|---|
| 头文件 | <cstring> | <string> |
| 定义 | char a[105] = {}, b[105] = {}; | string a, b; |
| 无空格输入 | cin >> a >> b; | cin >> a >> b; |
| 含空格输入 | cin.getline(a, 105); | getline(cin, a); |
| 输出 | cout << a; | cout << a; |
| 长度 | int len = strlen(a); | int len = a.length(); |
| 复制 | strcpy(a, b); | a = b; |
| 拼接 | strcat(a, b); | a += b; 或 a.append(b); |
| 比较 | strcmp(a, b); | a == b 或 a > b |
关键说明:
-
字符数组
- 需预分配固定大小(如
char[105]),操作依赖<cstring>函数。 - 比较函数
strcmp(a, b):- 返回
0(相等)、>0(a > b)、<0(a < b)。
- 返回
- 需预分配固定大小(如
-
string类- 动态管理内存,无需固定大小,操作更简洁(如直接赋值
a = b)。 - 比较可直接用关系运算符(
==、>等)。
- 动态管理内存,无需固定大小,操作更简洁(如直接赋值
-
数学函数
- 整数绝对值用
abs()(<cstdlib>),浮点数用fabs()(<cmath>)。 ceil(2.1) = 3,floor(2.9) = 2,round(2.9) = 3。
- 整数绝对值用
2685

被折叠的 条评论
为什么被折叠?



