#使用
可以定义string数组
string s[100]
s[i]可以不是一个字符
可以直接比大小
sort(s.begin(),s.end());//训练赛时不会
也可以拼接
s1=aaaa;
s2=bbb;
s1+s2=aaabbb;
下面是一些常用的字符串函数方法的总结:
##1.定义
当定义string s(“12345”)时;
string s(“12345”,0,2)实际为"123";
string s(5,‘1’)实际为"11111";
##2. 插入操作
1.s.push_back(): 在末尾插入字符。
例如:s.push_back(‘a’) 在末尾插入一个字符 ‘a’。
2.s.insert(pos, element): 在指定位置插入字符。
例如:s.insert(s.begin(), ‘1’) 在第一个位置插入字符 ‘1’。
3.s.append(str): 在字符串结尾添加另一个字符串。
例如:s.append(“abc”) 在字符串末尾添加字符串 “abc”。
##3. 删除操作
1.erase(iterator p): 删除字符串中指定位置的字符。
2.erase(iterator first, iterator last): 删除字符串中指定范围内的字符。
3.erase(pos, len): 删除字符串中从指定索引位置开始的指定长度的字符。
4.clear(): 删除字符串中所有字符。
##4. 字符替换
1.s.replace(pos, n, str): 将指定位置开始的 n 个字符替换为另一个字符串。
2.s.replace(pos, n, n1, c): 将指定位置开始的 n 个字符替换为 n1 个字符。
3.s.replace(it1, it2, str): 将指定迭代器范围内的字符替换为另一个字符串。
##5. 大小写转换
通过字符遍历实现:
1.tolower(s[i]): 将字符转换为小写。
2.toupper(s[i]): 将字符转换为大写。
通过 STL 的 transform 算法配合 tolower 和 toupper 实现:
string s;
- transform(s.begin(), s.end(), s.begin(), ::tolower); // 转换为小写
- transform(s.begin(), s.end(), s.begin(), ::toupper); // 转换为大写
##6. 分割
1.s.substr(pos, n): 截取从指定索引开始的指定长度的子字符串。
##7. 查找
1.s.find(str, pos): 在当前字符串的指定索引位置开始查找子串,返回找到的位置索引,-1 表示查找不到子串。
2.s.find(c, pos): 在当前字符串的指定索引位置开始查找字符,返回找到的位置索引,-1 表示查找不到字符。
3.s.rfind(str, pos): 在当前字符串的指定索引位置开始反向查找子串,返回找到的位置索引,-1 表示查找不到子串。
4.s.rfind(c, pos): 在当前字符串的指定索引位置开始反向查找字符,返回找到的位置索引,-1 表示查找不到字符。
5.s.find_first_of(str, pos): 在当前字符串的指定索引位置开始查找子串中的字符,返回找到的位置索引,-1 表示查找不到字符。
6.s.find_first_not_of(str, pos): 在当前字符串的指定索引位置开始查找第一个不在子串中的字符,返回找到的位置索引,-1 表示查找不到字符。
7.s.find_last_of(str, pos): 在当前字符串的指定索引位置开始查找子串中的最后一个字符,返回找到的位置索引,-1 表示查找不到字符。
8.s.find_last_not_of(str, pos): 在当前字符串的指定索引位置开始查找最后一个不在子串中的字符,返回找到的位置索引,-1 表示查找不到子串。