Zerschneiden einer Zeichenkette



  • Hallo

    Im Moment schreibe ich eine kleine Konsolenanwendung in C. Da muß ich eine Zeichenkette zerlegen. Ein Beispiel:
    char mytxt[30];

    mytext="-40 100";

    Jetzt will ich die Zeichenkette zerlegen und den Wert "-40" und "100" in zwei verschiedene integer Variablen schreiben.
    Nach den Leerzeichen kann ich breits erfolgreich suchen.

    Danke für die Hilfe



  • char text[128] = "123 456";
    char *ptr = strchr(text, ' ');
    
    if(ptr)
    {
    	*ptr++ = '\0';
    	// text enthält jetzt die 1. Zahl
    	// ptr zeigt jetzt auf den Anfang der 2. Zahl -> du musst die Strings nur noch in zahlen umwandeln
    }
    


  • wenn du auf schmerzen stehst, nimm strtok().
    wenn du gerne zu fuss laeufst, probier mal ne kombi aus strchr/strstr, strncpy und atoi.

    du koenntest auch sscanf ausprobieren, was ich dir persoenlich nahe legen wuerde, wenn dein string immer das selbe format hat ("zahl leerzeichen zahl")



  • Wenn es ganze Zahlen sind, benutze strtol:

    #include <stdlib.h>
    
    char mytest[] = "-40 100";
    
    long int z1, z2;
    char* zweite_zahl;
    
    z1 = strtol(mytest, &zweite_zahl, 10);
    z2 = strtol(zweite_zahl, NULL, 10);
    

Anmelden zum Antworten