MFC: Wie Like-Funktion von VB
-
Hallo,
Gibt es in C++ (MFC) eigentlich eine Funktion zum "Vergleichen" von Strings nach einem bestimmten Muster? Zum Beispiel ich will Prüfen, ob im meinem Satz zwei Wörter vorkommen:
if (Funktionsname("Dies ist ein Test","Dies*Test") == TRUE)
{
//Dies und Test kommen vor
}
else
{
//Dies und Test kommen nicht vor
}Also so wie z.B. bei einer Dateisuche, wo man eben für alle .exe-Dateien in das Suchfeld "*.exe" eingibt... In VB gabs dazu eine bequeme Funktion die sowas kann, aber weiß jemand, wie ich das am besten in C++ hinbekomme?
Manus
-
http://de.wikipedia.org/wiki/Regulärer_Ausdruck
Für C++ gibts da mehrere Libraries für z.B. die von http://www.boost.org
-
Hallo Manus,
nein, es gibt nicht. Aber du kannst strstr oder Cstring::Find benutzen:
if (strstr ("Dies ist ein Test","Dies") )
{
if (strstr ("Dies ist ein Test","Test") )
{
//Dies und Test kommen vor
MessageBox ("Mit strstr gefunden", "");
}
}CString s1 = "Dies ist ein Test";
if (s1.Find ("Dies") != -1)
{
if (s1.Find ("Test") != -1)
{
//Dies und Test kommen vor
MessageBox ("Mit CString::Find gefunden", "");
}
}Fredy "KRUGER"
-
edit: wieder weg^^
-
Mit der Lösung von Fredy können die Worte aber auch verdreht vorkommen.
Da muss man noch auf die Position achten.