查找字符串中的字符

要查找字符或其他字符串,可以使用 std::string::find 。它返回第一个匹配的第一个字符的位置。如果未找到匹配项,则函数返回 std::string::npos

std::string str = "Curiosity killed the cat";
auto it = str.find("cat");

if (it != std::string::npos)
    std::cout << "Found at position: " << it << '\n';
else
    std::cout << "Not found!\n";

找到位置:21

搜索机会通过以下功能进一步扩展:

find_first_of     // Find first occurrence of characters 
find_first_not_of // Find first absence of characters 
find_last_of      // Find last occurrence of characters 
find_last_not_of  // Find last absence of characters 

这些函数允许你从字符串的末尾搜索字符,以及查找否定的大小写(即不在字符串中的字符)。这是一个例子:

std::string str = "dog dog cat cat";
std::cout << "Found at position: " << str.find_last_of("gzx") << '\n';

找到位置:6

注意: 请注意,上述函数不会搜索子字符串,而是搜索搜索字符串中包含的字符。在这种情况下,'g'的最后一次出现位于 6(未找到其他字符)。