Stringfunktionen
-
Hallo,
ich habe folgendes Problem. Ich will einen String nach einem Trennzeichen durchsuchen, da ich herausfinden muss, ob es sich um einen oder zwei Parameter handelt. In dem String stehen ein oder zwei float-Werte, also z.B.: "1.234,4.567" oder "1 2.45" oder auch nur "1").Hat so:
string param; ... // Initialisiere kommaSuche im string param int kommaSuche = param.find(","); // Wenn ein Komma gefunden wurde -> zwei Parameter vorhanden if (kommaSuche!=-1) { } else {} // sonst nur ein Parameter
hervorragend funktioniert, bis ich bemerkt habe, dass ausser dem Komma noch andere Trennzeichen gelten. Ich habe es dann mit:
int kommaSuche = param.find(","||";");
versucht, was aber leider nicht geht. Gibt es eine einfache Funktion, mit der man nach einer Liste von Zeichen suchen kann ? (wie in Php zum Beispiel)
Am Besten wäre es nach allem zu suchen, was keine Zahl oder Punkt ist.
Hat da jemand gerade eine Idee. Das würde mir sehr weiterhelfen. Ich programmiere in MFC, so dass ich das zur Not auch in einen CString umwandeln könnte.
Danke schonmal.
-
Gibt es eine einfache Funktion, mit der man nach einer Liste von Zeichen suchen kann ?
basic_string::find_first_of sollte dir helfen.
// Initialisiere kommaSuche im string param
int kommaSuche = param.find(",");// Wenn ein Komma gefunden wurde -> zwei Parameter vorhanden
if (kommaSuche!=-1)
{
}Besser:
string::size_type kommaSuche = param.find(","); if (kommaSuche != string::npos) {}
Oder alternativ:
size_t kommaSuche = param.find(","); if (kommaSuche != string::npos) {}
-
Dankeschön, funktoniert wunderbar mit find_first_of. Hatte ich übersehen. Ich dachte da wird nach einem Teilstring gesucht.
Gibt es eine gute Referenz, bei der die Standarfunktionen knapp und gut dargestellt werden und auch die Parameter erläutert sind, am Besten auf deutsch ? Bei Herrn Stroustroup sind diese Stringfunktionen doch sehr dürftig beschrieben. Ich suche mir immer bei Google die Finger wund.
-
Hallo,
mir gefällt die Referenz von Dinkumware ganz gut: