发现很多string类函数总是记不住,也没有一个比较常用简单的汇总。
所以就写了此篇,对于一些简单的操作还是很方便的。(感觉比较适合考前临时复习)
未来应该会详细补充拓展,有错误、补充或需要改进的地方请指出,我会改正,谢谢。
输入:(此处字符串名字都用str简称)
1.cin //不可以带空格输入
2.getline(cin,str); //getline适用于一次读取一行,包括空格,遇换行结束
3.getline(cin,str,'#'); //以‘#’为结束符,可替换
拼接:
可直接进行+操作
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "Hello";
string b = "World";
string result = a + b;
cout << result << endl; // 输出: HelloWorld
return 0;
}
比较大小:
==、!=、>=、<=、<、>在用这些的时候按字典顺序进行比较
strcmp(str1,str2) //比较str1和str2大小,比较方式如上
如果str1>str2,返回正整数
如果str1=str2,返回0
如果str1>str2,返回正整数
插入字符串:
str1.insert(插入位置,str2) //把str2插入str1
str1.insert(插入位置,str2插入的起始位置,str2插入结束位置) //把str2片段插入str1
清空字符串、删除单个元素:
str.clear() //清空
str.erase(位置) //删除单个
提取子串:
str.substr(位置,长度) //返回从位置开始一定长度的str的子串
查询find:
a.find(b) //当b是a子串时,返回b在a第一次出现的位置,否则返回string::npos(-1)
a.find(b,pos) //从a的pos位置开始寻找,返回如上
替换:
a.replace(pos,len,b) //把a从pos的位置开始,长度为len的子串替换为b
a.replace(起始位置,终止位置,b) //把a从起始的位置开始到终止位置的子串替换为b
翻转:
reverse(a.begin(),a.end()); //反转a
连接:
strcat(str1,str2) //将str2连接在str1后,返回str1
strcat(str1,str2,n) //将str2前n个字符连接在str1后,返回str1
复制:
strcpy(str1,str2) //将str2复制在str1,返回str1
strcpy(str1,str2,n) //将str2前n个字符复制在str1,返回str1