#4222. 字符串笔记2
字符串笔记2
当前没有测试数据。
C++ 字符串处理与回文判断课堂笔记
一、字符串基础操作
-
字符串拼接
- 字符串与字符串相加:
string s1="abc", s2="def"; cout << s1 + s2; // 输出 "abcdef" - 字符串与单个字符相加:
string s="abc"; char c='d'; cout << s + c; // 输出 "abcd" - 单个字符与单个字符相加:计算ASCII码之和,
char c1='a', c2='b'; cout << c1 + c2; // 输出 195 (97+98)
- 字符串与字符串相加:
-
字符串输入输出
string s; cin >> s; // 读取到空格停止 getline(cin, s);// 读取整行 cout << s;
二、回文判断方法
-
数字回文判断
int x = 12321; int b = x, dao = 0; while (b > 0) { dao = dao * 10 + b % 10; b /= 10; } if (dao == x) cout << "回文"; else cout << "不是回文"; -
字符串回文判断
string s = "abcba"; string s2; for (int i = s.size() - 1; i >= 0; i--) { s2 = s2 + s[i]; } if (s2 == s) cout << "回文"; else cout << "不是回文";
三、字符串常用函数
| 函数名 | 功能描述 | 示例代码 |
|---|---|---|
s.erase(pos,len) |
删除从pos开始的len个字符 | string s="123abc"; s.erase(1,2); // s变为"1abc" |
s.find(str,pos) |
从pos开始查找str第一次出现的位置,返回首字符下标,找不到返回string::npos |
string s="c123abcc"; int x=s.find("abc"); // x=4 |
s.insert(pos,str) |
在pos位置前插入字符串str | string s="abcabc"; s.insert(3,"xy"); // s变为"abcxyabc" |
s.substr(pos,len) |
截取从pos开始长度为len的子串 | string s="123abc"; string sub=s.substr(2,2); // sub为"3a" |
s.replace(pos,len,str) |
将从pos开始的len个字符替换为str | string s="123abc"; s.replace(2,2,"xy"); // s变为"12xybc" |
四、字符串与数字互转
-
字符串转数字
string s = "1234"; int ans = 0; for (int i = 0; i < s.size(); i++) { ans = ans * 10 + (s[i] - '0'); } // ans = 1234 -
数字转字符串
int a = 12345; string ss; while (a > 0) { int ge = a % 10; ss = char(ge + '0') + ss; a /= 10; } // ss = "12345"
五、字符频率统计
string s = "aaabbccczz";
int b[30] = {0}; // b[1]统计'a'出现次数,b[2]统计'b'...
for (int i = 0; i < s.size(); i++) {
b[s[i] - 'a' + 1]++;
}
// 输出每个字符出现次数
for (int i = 1; i <= 26; i++) {
cout << char('a' + i - 1) << "出现次数: " << b[i] << endl;
}
六、字符串比较规则
- 字典序比较:从第一个字符开始比较ASCII码值,直到出现不同字符或其中一个字符串结束。
string s1 = "ab", s2 = "abc"; if (s1 < s2) cout << "s1 < s2"; // 输出 "s1 < s2"
七、常用ASCII码值
| 字符 | ASCII码值 |
|---|---|
| '0' | 48 |
| '1' | 49 |
| ... | |
| '9' | 57 |
| 'A' | 65 |
| 'B' | 66 |
| ... | |
| 'Z' | 90 |
| 'a' | 97 |
| 'b' | 98 |
| ... | |
| 'z' | 122 |
八、注意事项
- 字符串索引:从0开始,
s[0]是第一个字符 - 字符串长度:
s.size()或s.length()返回字符串长度 - 字符操作:字符可以直接进行加减运算,如
'a'+1等于'b'