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?
-
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.