蓝桥杯国赛备赛——字符串
//string str1; //生成空字符串
//string str2("123456789"); //生成"123456789"的字符串
//string str3(3,'1'); //生成"111"// 尾插一个字符s1.push.back('a');
//或者s+='a';//s.insert(s.begin()+i,'a')如果前面是s.begin()+i那么只能插字符;
//s.insert(pos,"string");在指定位置pos后插入字符串;//string s1="123456789";
//s1.erase(s1.begin()+1)//结果"13456789"
//s1.erase(1)删除位置1,以及以后的值,结果:1
//s1.erase(s1.begin()+1,s1.end()-2);结果:189 闭区间
//s1.erase(2,2);删除位置2以后两个位置//结果;"1256789"//转置字符串
reverse(s.begin(),s.end());
string str=s;//string s("dog bird chicken bird cat");
//字符串查找--找到后返回字母在字符串中的下标1.查找一个字符串//if(s.find("chicken", 0)!=-1)
//cout << s.find("chicken") << endl; 结果是:92.从下标为6开始找字符’i’,返回找到的第一个i的下标//cout << s.find('i',6) <<endl;结果是:11//string s1("0123456789");
//string s2 = s1.substr(2, 5);
ll结果:23456-----参数5表示:截取的字符串的长度
例题1 牛客NOIP2003
注:也可以直接用数组做
例题2P1308 [NOIP 2011 普及组] 统计单词数
#include<bits/stdc++.h>
using namespace std;
int main()
{std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);string a,b;getline(cin,a);getline(cin,b);for(int i=0;i<a.size();i++)a[i]=toupper(a[i]);for(int i=0;i<b.size();i++)b[i]=toupper(b[i]);a=' '+a+ ' ' ;b=' '+b+' ';if(b.find(a)==string::npos){cout<<-1<<endl;}else{ int sum=0;int st=b.find(a);int tmp=st+sizeof(a); while(tmp!=-1){sum++;tmp=b.find(a,tmp+1);}cout<<sum<<" "<<st<<endl;}
}
注:博主是看的b站一个up主的视频系列 小水獭鸽鸽的个人空间-小水獭鸽鸽个人主页-哔哩哔哩视频