字符串进阶笔记

root 站长 2022-05-23 21:10:08 2022-05-23 21:25:13 0

1、字符串和字符的关系

字符串: 一串、多个字符 一个字符 : char

2、 多个字符

  1. 字符数组 char a[100]; // 只能存99个字符,末尾有一个 \0
  2. 字符串 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等也一样用法
{{ vote && vote.total.up }}