String in mehrere Strings aufteilen



  • Hallo!

    Habe das Problem einen langen String in kleinere String mit festen Längen aufzuteilen.
    Habe es bisher so gelöst:

    int counter, position, length, lines, x;
    
    length = strlen(long_string); // Ermittelt die Länge des langen Strings
    x = 12; // Kleinen Strings sollen 12 Zeichen enthalten
    lines = length / x + 1; // Anzahl der Array-Elemente
    
    short_string = (char **)x_malloc((lines + 1) * sizeof(char *));
    for (counter = 0, position = 0; counter < lines, position < length; counter++, position += x)
    {
      short_string[counter] = (char *)x_malloc((x + 1) * sizeof(char));
      strncpy(short_string[counter], &long_string[position], x);
      short_string[counter][x] = '\0';
    }
    short_string[counter] = (char *)NULL;
    

    Ist das so OK? Gibt es 'ne bessere Lösung?

    Danke!
    Gruß
    Michael



  • Das Programm läuft doch nicth wirklich oder??

    Hier fehlen die Anzahl Bytes, die schließende Klammer und das Semikolon
    strncpy(short_string[counter], &long_string[position];

    strncpy(short_string[counter], &long_string[position],x);
    Du brauchst auch die schlißende Null nicht selber zu schreiben

    Der Rest ist extrem kompact (somit nicht leicht lesbar) aber sieht funktionabel aus


Anmelden zum Antworten