检查给定的单词是否存在于字符串中
C++ 有一个预定义函数 find(),它可以从第一个元素范围搜索到最后一个元素。在本文中,我们将了解如何使用此 find() 函数检查给定的单词是否存在于字符串中。
让我们举个例子。
给定的字符串是"John 和 mark 有相同颜色的 T 恤";
为了在字符串中搜索单词,我们将创建一个表示为搜索查找器的变量。让我们取两个变量并检查给定的单词是否存在。
Var1 = peter; - 字符串中未找到该单词。
Var2 = mark; − 字符串中找到了该单词。
因此,我们将应用基于模式匹配的条件,并使它们满足条件以在字符串中找到给定的单词。
在本文中,我们将解决给定的单词是否存在于字符串中。
方法
find()
find() 是字符串中的预定义方法,可帮助搜索字符串中是否存在给定的单词。
string::npos
npos 表示没有位置,表示如果返回 true,则表示在任何时候均未发现匹配项位置。
算法
我们将从头文件"iostream"和"string"开始。
我们启动主函数并将字符串值初始化为名为"myString"的变量。我们将从存储在此变量中的字符串中找到给定的单词。
我们将创建两个变量,即"word1"和"word2"。我们将在myString变量中搜索这两个单词。
现在我们使用if语句来检查给定的单词是否存在于字符串中。
'myString.find( word1 ) != string::npos'
接下来,带有'myString'变量的 find() 函数有助于搜索给定的单词,如果它不等同于 string::npos,则它将返回语句,因为给定的单词存在于字符串中。如果没有找到该单词,则它将返回语句,因为给定的单词不存在于字符串中。
示例
在这个程序中,我们将解决给定的单词是否存在于字符串中。
#include <iostream> #include <string> using namespace std; int main() { string myString = "The quick grey monkey jumps over the lazy dog"; string word1 = "grey"; string word2 = "mouse"; // 检查给定的单词是否存在于字符串中。 if ( myString.find( word1 ) != string::npos ) { cout << word1 << " 存在于字符串中。" << endl; } else { cout << word1 << " 不存在于字符串中。" << endl; } // 第二次搜索单词,但过程相同 if ( myString.find( word2 ) != string::npos ) { cout << word2 << " 存在于字符串中。" << endl; } else { cout << word2 << "字符串中不存在。" << endl; } return 0; }
输出
字符串中存在 grey。 字符串中不存在 mouse。
结论
我们探讨了字符串中给定单词是否存在的概念。我们看到了 find() 方法如何帮助搜索给定字符串的单词,另一方面,当此方法等同于 string::pos 时,它会返回字符串中存在的单词,否则该单词不存在。