std::string中的find_first_of()和find_last_of()函数

编程语言: c++/linux

在std::string中,有时需要找到一个string中最后一个或者第一个以某个特定的字符开始的位置或者下标,这时就需要使用find_first_of()和find_last_of()函数。

find_first_of() : 找到一个string中第一个以 某个 字符开始的位置

find_last_of() :找到一个string中最后一个以 某个 字符开始的位置

使用方式如下:

#include 
#include 

int main () {
  std::string str1 ("tvab33_v12");

  std::size_t pos_first = str1.find_first_of('v');
  std::cout << "pos_first=" << pos_first << std::endl;

  std::size_t pos_last = str1.find_last_of('v');
  std::cout << "pos_last=" << pos_last << std::endl;

  return 0;
}

结果:

 还有另外2个函数:

find_first_not_of("abc") : 找到string中第一个不是以字符'a'/'b'/'c'开始的字符的位置
find_last_not_of("abc") :  找到string中最后一个不是以字符'a'/'b'/'c'开始的字符的位置

// string::find_first_not_of
#include        // std::cout
#include          // std::string
#include         // std::size_t

int main () {
  std::string str ("look for non-alphabetic characters...");

  std::size_t pos = str.find_first_not_of("abcdefghijklmnopqrstuvwxyz");

  if (pos != std::string::npos)
  {
    std::cout << "The first not in abcdefghijklmnopqrstuvwxyz :" << str[pos] << std::endl;
    std::cout << " position is:" << pos << std::endl;
  }

  return 0;
}

结果:

std::string中的find_first_of()和find_last_of()函数_第1张图片

你可能感兴趣的:(STL,c++)