编程语言: c++/linux
在std::string中,有时需要找到一个string中最后一个或者第一个以某个特定的字符开始的位置或者下标,这时就需要使用find_first_of()和find_last_of()函数。
find_first_of() : 找到一个string中第一个以 某个 字符开始的位置
find_last_of() :找到一个string中最后一个以 某个 字符开始的位置
使用方式如下:
#include <iostream>
#include <string>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 <iostream> // std::cout
#include <string> // std::string
#include <cstddef> // std::size_tint 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;
}
结果: