[C++] Überprüfen Sie, ob eine Zeichenfolge eine Zeichenfolge in C ++ enthält


Answers

Sie können versuchen, die find verwenden:

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

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

Ich habe eine Variable vom Typ String. Ich möchte überprüfen, ob es eine bestimmte Zeichenfolge enthält. Wie würde ich das machen?

Gibt es eine Funktion, die true zurückgibt, wenn die Zeichenfolge gefunden wird, und false, wenn dies nicht der Fall ist?




Sie können dies versuchen

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



Dies ist eine einfache Funktion

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;
}