[C++] Vérifiez si une chaîne contient une chaîne en C ++


Answers

Vous pouvez essayer d'utiliser la fonction de find :

string str ("There are two needles in this haystack.");
string str2 ("needle");

if (str.find(str2) != string::npos) {
//.. found.
} 
Question

J'ai une variable de type string. Je veux vérifier s'il contient une certaine chaîne. Comment ferais-je cela?

Y at-il une fonction qui renvoie true si la chaîne est trouvée, et false si ce n'est pas le cas?




Tu peux essayer ça

string s1 = "Hello";
string s2 = "el";
if(strstr(s1.c_str(),s2.c_str()))
{
   cout << " S1 Contains S2";
}



C'est une fonction simple

bool find(string line, string sWord)
{
    bool flag = false;
    int index = 0, i, helper = 0;
    for (i = 0; i < line.size(); i++)
    {
        if (sWord.at(index) == line.at(i))
        {
            if (flag == false)
            {
                flag = true;
                helper = i;
            }
            index++;
        }
        else
        {
            flag = false;
            index = 0;
        }
        if (index == sWord.size())
        {
            break;
        }
    }
    if ((i+1-helper) == index)
    {
        return true;
    }
    return false;
}