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 schreibenDer Rest ist extrem kompact (somit nicht leicht lesbar) aber sieht funktionabel aus