(4)一个简单的例子
过滤一行开头和结尾的所有的非英文字符。这里只是为了说明find函数find_first_of函数的区别。Find是从pos开始查找字符串s在当前串中的位置;而find_first_of是从pos开始查找当前串中第一个在s的前n个字符组成的数组里的字符的位置。
#include <string>
#include <iostream>
using namespace std;
int main()
{
string strinfo = "//*----Hello world!.....----";
string strset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
int first = strinfo.find_first_of(strset);
if(first == string::npos)
{
cout << "not find any characters" << endl;
return -1;
}
int last = strinfo.find_last_of(strset);
if(last == string::npos) //string::npos =-1
{
cout << "not find any characters" << endl;
return -1;
}
cout << strinfo.substr(first, last - first +1) << endl;
string str = "hello world!!!";
string str2 = "hlo";
// 注意 find和find_first_of()区别很大
int j = str.find(str2); // 从pos开始查找字符串s在当前串中的位置
int i = str.find_first_of(str2); // 从pos开始查找当前串中第一个在s的前n个字符组成的数组里的字符的位置。
cout << i << endl;
return 0;
}