C++ Primer 第5版--练习9.47

来源:互联网 发布:thinkphp3.2 商城源码 编辑:程序博客网 时间:2024/06/03 16:07

练习 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;}


0 0