String aufteilen



  • Hallo allemiteinander,

    ich habe derzeit ein kleines Problem:
    Ich habe einen String, in dem eine Zahl nach dem Muster "x,y" steht. Nun möchte ich den Teil vor dem Komma in einen eigenen String packen und den danach ebenfalls.

    Nun meine Frage:
    Gibt es dafür im Standart C++ in der String-Klasse eine entsprechende Funktion, also eine Funktion ähnlich substring bei PHP.

    Danke im Voraus,

    Prof. MAAD



  • zum finden des Kommas gibt es eine string::find()-Funktion.
    Den Teilstring bekommst du dann mit string::substr()



  • Hi,

    in der Tat gibt es eine substr-Funktion:

    int pos = text.find(",");
    string x = text.substr(0, pos);
    

    So oder so ähnlich sollte es funktionieren 😉

    Gruß,
    Neo



  • Danke erstmal,

    es hat bis hier hin geklappt. Nun noch eine zweite Frage:
    Welchen Wert liefert find() zurück, wenn das Zeichen nicht im String vorkommt?

    Danke im Voraus,

    Prof. MAAD



  • Ich glaube es ist die -1. Einfach mal ausprobieren



  • Guntpat schrieb:

    Ich glaube es ist die -1. Einfach mal ausprobieren

    Nein, es ist string::npos

    bis bald
    akari



  • So, danke euch allen.

    Es hat letztendlich mit beiden Möglichkeiten geklappt (string::npos, -1).

    Ciao,

    Prof. MAAD



  • Hallo

    -1 funktioniert, ist aber nicht sauber. Denn der Rückgabewert von find ist size_type, also unsigned int. Und da muß -1 erstmal gecastet werden, und dann kommt es zu einer Uminterpretierung auf den Wert, den string::npos hat.

    bis bald
    akari


Log in to reply