查找字符串中的字符
要查找字符或其他字符串,可以使用 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
(未找到其他字符)。