C++中字符数组和字符串string(3)

(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;
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/06f8e9032b0a786a5141bfc636f31c0c.html