1、字符串和字符的关系
字符串: 一串、多个字符 一个字符 : char
2、 多个字符
- 字符数组 char a[100]; // 只能存99个字符,末尾有一个 \0
- 字符串 string a; //无限大, 相配套的函数,STL
3、输入
cin >> a; //缺点不能读入有空格的字符串
getline(cin, a); //能读入空格,只能读取一行字符串
4、长度/遍历
a.size() // 字符串a的长度, 相当于a.length()
for (int i = 0;i < a.size();i ++ ) //遍历整个字符串a,下标从 0 开始的!!!!
{
//TODO
}
5、字符串的函数(char 一维数组做不到!!!)
函数 | 含义 | 样例 |
---|---|---|
= | 赋值 | string a = "abc"; |
+ | 连接 | string a = "ab", b = "bc"; a + b 的结果 "abbc" |
+= | 赋值连接 | string a = "xy", b = "z"; a += b; a的结果是"xyz" |
> | 大于(字典序) | string a = "ab", b = "ac"; => b大 \n string a = "abcde", b = "b"; => b大 |
>= | 大于或等于 | 在大于基础增加了等于,大于或等于都可以 |
< | 小于 | string a = "ab", b = "ac"; => a小 \n string a = "abcde", b = "b"; => a小 |
<= | 小于或等于 | 在小于的基础上增加了等于,等于或者等于 |
size()/length() | 字符串的长度 | string a = "abc"; a.size() = 3 |
substr() | 截取函数(开始下标,长度); | string a = "abc"; a.substr(0, 2) => "ab" |
substr(1); | 去掉字符串中第一个字符后的字符串 | 比如 "wxyz" => "xyz" |
find() | 查找字符,能找到返回字符第一次出现的下标 | string a = "abc"; a.find('a') //能找到, a.find('x') //没有 |
6、 reverse 反转对象
1) 头文件 algorithm / bits/stdc++.h
2) 用法: reverse(a + 1, a + 1 + n); //反转一个一位数组a 1 2 3 4 => 4 3 2 1
reverse(a.begin(), a.end()); //反转一个字符串 "123" -> "321",vector等也一样用法