strings vergleichen?
-
hi,
ich deklariere meinen String so:
std::string DateiText(static_cast<char*>(p_text), textSize);. Nun will ich den String auf "flop: 3" überprüfen lassen, aber irgendwie funktioniert das nicht (ich hab eine Messagebox und eine If-Abfrage um zu überprüfen ob der Text, also "flop: 3", im String vorkommt).
Hier mal die Sachen, die ich schon versucht habe:
1.if(strcmp(DateiString, "flop: 3"))...if(DateiString == "flop: 3")...if(DateiString.find("flop: 3)...Vielen Dank schon mal
P. S.: Der String ist gefüllt, das hab ich schon geprüft
-
Also:
if (DateiString.find("flop: 3") != string::npos ) { //habs gefunden }Findet es, wenn es genau so im string vorkommt. Ein Vergleich mit == ist nur wahr, wenn der String genau "flop: 3" ist (nicht mehr und nicht weniger).
In welcher Hinsicht "funktionieren" deine Varianten nicht?
Was genau willst du nun prüfen?
-
#include <string> #include <iostream> int main() { std::string text = "Hello!"; if(text == "Hello!") { std::cout << "true" << std::endl; } else { std::cout << "false" << std::endl; } return 0; }Gibt "true" aus. Was heisst also "funktioniert nicht"? Könnte es sein, dass dein Textpuffer eine abschliessende 0 hat und
textSizediese 0 dazuzählt?Grüssli
-
habs geschafft, danke!