char array zweites Wort auslesen



  • Ich habe einen array wie diesen hier:

    char HALLO[20] = "Hallo Welt";
    Und ich möchte "Welt" in einem char* oder in einem anderen array speichern.

    Wie stelle ich das an?

    Danke.



  • Nur auf "Welt" innerhalb von "Hallo Welt" zeigen, wäre das einfachste.

    char* welt=HALLO+6;
    

    Oder willst Du eine Kopie haben?


  • Mod

    Und falls du dich nach dieser Antwort fragst, wie du das zweite Wort allgemein findest: Mit strchr kannst du das erste Leerzeichen suchen.



  • Wenn du flexibel für verschiedene Ausgangswerte sein willst und das Ergebnis noch weiterbearbeiten willst, sieht eine Lösung mit Fehlerbehandlung und Ergebnis als Kopie z.B. so aus:

    char *strA = " 1 2 3 ";
    char strB[100];
    
    if( 1==sscanf( strA, "%*s%99s", strB ) ) /* versucht 2. Wort zu lesen */
      puts(strB);
    else
      puts("ein Fehler aufgetreten");
    

    Das Ergebnis strB ist hier eine Kopie aus strA, d.h. strA bleibt unverändert egal was du mit strB noch machst.

    Das 3. Wort zu lesen sieht dann analog aus:

    if( 1==sscanf( strA, "%*s%*s%99s", strB ) ) 
      ...
    

    Für Stringbehandlung sieh dir die sscanf und str Funktionen der ANSI-C STANDARD-Bibliothek an.


Anmelden zum Antworten