录入:
想要包括空格一起录进来
getline(cin,s);
如果在录入字符串之前有录进去‘\n’ 那就得小心了
回车换行会存在 缓存区内导致只录进去了一个回车换行
cin.ignore();
getline(cin,s);
这样回车换行就不会被读入了
插入删除:
#include<string>
#include<iostream>
using namespace std;
int main()
{
string s;
s="qq549616079";
s.insert(s.find("5"),"haha");
cout<<s;
}
运行结果:qqhaha549616079
插入是在position的前面插入
#include<string>
#include<iostream>
using namespace std;
int main()
{
string s;
s="qq5496016079";
s.erase(0,3);
cout<<s;
}
运行结果:496016079
s.erase(int begin,int end);
删除这段区间[begin,end);
包括begin,但是不包括end;
如果没写end参数
s.erase(int begin);
从begin开始后面的全部删除了(包括begin);
查找:
s.find(str);
从前面往后找
返回第一个匹配的的下标
s.rfind(str);
从后往前找
如果查找不成功返回 string::string::npos
一般情况下写成if(s.find(str)!=-1) 也行;