1.统计子串次数
每次都去找子串,然后把字符串按本次找到的子串进行切割,对剩下的部分继续寻找子串
//统计子串出现次数 //每次都去找子串,然后把字符串按本次找到的子串进行切割,对剩下的部分继续寻找子串 string str; getline(cin, str); int tmp = 0; int count = 0; int index = str.find("yang"); while (str.find("yang") != -1) { count++; str=str.substr(str.find("yang")+4); } cout << count;
2.字符串转换
把非转换部分拼接进一个空子串,转换部分则进行转换再拼接。
string replaceSpaces(string &str) { string res; for (auto x : str) if (x == ' ') res += "%20"; else res += x; return res; }
3.以某一个字符分割字符串
如果时空阁直接用isringstream,如果是其它字符就先转换成空格。
#include<sstream> //istringstream将字符串以空格为分割 string str; getline(cin, str); istringstream is(str); string s; while (is>>s) { cout << s<<endl; } //若想将字符串以其它字符分割,可以将其该字符转化为空格 getline(cin, str); string str2; for (auto c : str) {//将指定字符转化为空格的方式进行分割 if (c == 'a') { str2 += ' '; } else { str2 += c; } } istringstream is2(str2); while (is2 >> s) { cout << s << endl; }
总结:熟悉各个以上出现的各个函数接口,方便解题!