检查给定的单词是否存在于字符串中

c++server side programmingprogramming

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 时,它会返回字符串中存在的单词,否则该单词不存在。


相关文章