用find_first_of筛分字符串
Practice 9.47
#include <iostream>
#include <queue>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
#include <list>
#include <iterator>
#include <cmath>
#include <cstring>
#include <forward_list>
#include <sstream>
using namespace std;
string dic_of_number = "1234567890";
string res_of_number = "";
string res_of_alp = "";
int pos;
void find_number(const string & s) {
while(pos<(int)s.length() && (pos = s.find_first_of(dic_of_number,pos))) {
res_of_number += s[pos];
pos ++;
}
}
void find_alp(const string & s) {
while(pos<(int)s.length()) {
pos = s.find_first_not_of(dic_of_number, pos);
if(pos==-1) break;
res_of_alp += s[pos];
pos ++;
}
}
int main() {
res_of_number = "";
res_of_alp = "";
string s = "jin4hai8jia4";
pos = 0;
cout << "original string: " << s << endl;
find_number(s);
cout << "number string: ";
cout << res_of_number << endl;
pos = 0;
find_alp(s);
cout << "alp string: ";
cout << res_of_alp << endl;
return 0;
}
Output
original string: jin4hai8jia4
number string: 484
alp string: jinhaijia
不矫情,想约你出去