练习 9.47:编写程序,首先查找string "ab2c3d7R4E6" 中的每个数字字符,然后查找其中每个字母字符。编写两个版本的程序,第一个要使用 find_first_of,第二个要使用 find_first_not_of。
使用find_first_of的版本如下:
#include <iostream>
#include <string>
using std::cout;
using std::string;
int main()
{
string s("ab2c3d7R4E6");
string numbers("0123456789");
string alphabet("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
cout << "string \"ab2c3d7R4E6\"中的数字字符是:";
for (string::size_type pos = 0; (pos = s.find_first_of(numbers, pos)) != string::npos; ++pos)
cout << s[pos];
cout << "\nstring \"ab2c3d7R4E6\"中的字母字符是:";
for (string::size_type pos = 0; (pos = s.find_first_of(alphabet, pos)) != string::npos; ++pos)
cout << s[pos];
return 0;
}
使用find_first_not_of的版本如下:
#include <iostream>
#include <string>
using std::cout;
using std::string;
int main()
{
string s("ab2c3d7R4E6");
string numbers("0123456789");
string alphabet("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
cout << "string \"ab2c3d7R4E6\"中的数字字符是:";
for (string::size_type pos = 0; (pos = s.find_first_not_of(alphabet, pos)) != string::npos; ++pos)
cout << s[pos];
cout << "\nstring \"ab2c3d7R4E6\"中的字母字符是:";
for (string::size_type pos = 0; (pos = s.find_first_not_of(numbers, pos)) != string::npos; ++pos)
cout << s[pos];
return 0;
}