2017-06-22 3 views
0
int main() 
{ 
char *a = "i am mad"; 
string str(a); 
cout<<str.rfind("mad"); 

system("pause"); 
return 0; 
} 

So versuche ich, einen bestimmten Teil eines string.Let des zum Vergleich Vergleich sagen, dass die Zeichenfolge enthält mad dann würde ich eine Operation durchführen und wenn nicht ich eine andere Operation ausführen . Meine Quellzeichenfolge ist nur im const char-Format vorhanden. Ich bin in der Lage zu finden, wo die Unterzeichenfolge ist d. H. mad, aber ich kann es nicht verwenden, um mit etwas zu vergleichen.einen bestimmten Teil einer Zeichenfolge durch eine andere Zeichenfolge

So habe ich die Position der Teilzeichenfolge gefunden, aber ich weiß nicht, wie man vergleicht. was soll ich ändern? Ich weiß, dass mad von 5 Standort beginnt, aber dann wie vergleiche ich.?

+0

Ich bin ziemlich neu in der Programmierung. Kannst du mir sagen, wie es geht? –

Antwort

0

Sie müssen einen Vergleich mit dem Ergebnis rfind() durchführen.

int main() 
{ 
    const char *a = "i am mad"; 
    string str(a); 

    if (str.rfind("mad") == string::npos) // string::npos means not found, according to the docs 
    { 
     cout << "All is well" << endl; 
    } 
    else 
    { 
     cout << "Uh oh, somebody's mad!" << endl; 
    } 

    system("pause"); 
    return 0; 
} 
0

Wenn Sie den Startindex eines mad finden können, dann erstellen Sie einfach einen Teilstr. str2 = str.substr (Startindex von 'verrückt', einer Länge von 'verrückt')

dann Sie str2 mit anderen

0

vergleichen können Sie den Return-Index mit string :: npos vergleichen

int ret = str.rfind("mad", str.length()); 
if (ret != string::npos) 
{ 
    // mad found in str 
} 
else 
{ 
    // mad not found 
} 
Verwandte Themen