1.字符串查找函数find
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
cout<<s.find("aa")<<endl;//查找字符串“aa”首次出现位置
cout<<s.find("aa",3)<<endl;//查找下标3开始(即第四个字符开始)字符串“aa”首次出现位置
cout<<s.find('a')<<endl;//查找字符串'a'首次出现位置
cout<<s.find('a',3)<<endl;//查找下标3开始(即第四个字符开始)字符串“aa”首次出现位置
cout<<s.rfind("aa")<<endl;//查找字符串“aa”最后一次出现位置
}
/*
aabaabaab
0
3
0
3
6
*/
找不到则返回-1
2.计算某一字符出现个数
int cnt = count(str.begin(), str.end(), ' '); //计算空格数量
3.取子串
str = str.substr(cnt); //取从cnt下标开始一直到结束的所有字符
str = str.substr(cnt,m); //取从cnt下标开始的m个字符
4.查找第一个大于或大于等于的字符
x=lower_bound(b+1,b+m+1,y)-b;//从[first,last)中找第一个大于等于y的元素的地址
//-b是转化为下标
x=upper_bound(b+1,b+m+1,y)-b;//同理,只不过找第一个大于的
5.查找某一字符串中任意字符首次/末次出现位置
find_first_of()方法在字符串中查找参数中任何一个字符首次出现的位置。例如,下面的语句返回r在”cobra”中的位置,因为这个”hark”中各个字母在”cobra”首次出现的位置:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
cout<<s.find_first_of("hark")<<endl;
cout<<s.find_last_of("hark")<<endl;
}
6.查找不是某一字符串中字符的首次/末次出现位置
find_first_not_of()方法在字符串中查找第一个不包含在参数中的字符
find_last_not_of()方法在字符串中查找第一个不包含在参数中的字符
8.字符串转数字:
string s="12";
int y=stoi(s);
cout<<y<<endl;
数字转字符串:
string x=to_string(12);
10.大小写转化
transform(s.begin(),s.end(),s.begin(),::tolower);
transform(s.begin(),s.end(),s.begin(),::toupper);
11.cin和getline
当 cin 读取数据时,它会传递并忽略任何前导白色空格字符(空格、制表符或换行符)。一旦它接触到第一个非空格字符即开始阅读,当它读取到下一个空白字符时,它将停止读取。
为了解决这个问题,可以使用一个叫做 getline 的 C++ 函数。此函数可读取整行,包括前导和嵌入的空格,并将其存储在字符串对象中。
12、替换函数
string s;
s.replace(1,3,"1111");//从1号位置起3个字符替换成111
13、字符串比较
string a,b;
cin>>a>>b;
if(a.compare(b)==0)
cout<<"相等"<<endl;
else
if(a.compare(b)==1)
cout<<"前者大"<<endl;
else
cout<<"后者大"<<endl;
14、插入函数和删除函数
s.insert(1,"111");//在1位置后插入111
s.erase(1,2);//从1位置开始删两个