Grundsätzlich versuche ich, genügend Platz für eine Zeichenfolge zuzuweisen, wie ich die durch Kommas abgegrenzten Zahlen extrahiere. Wie kann ich das in c tun?Wie kann ich eine Zeichenfolge in C initialisieren, ohne die Länge zu kennen, und weiterhin Zeichen an sie anhängen?
Mein Algorithmus ist die Schleife durch den String von Index 0 bis zum letzten Index, und jede Ziffer in eine Zeichenfolge namens temp, und wenn ich auf das Komma stoße, drucke ich die Zeichenfolge.
char* string = "123,4567,8910";
char* delimiter = ",";
size_t i;
// char temp[] = "" ???? supposed to be a dynamic string/array whatever
for (i = 0; i < strlen(string); i++) {
if (string[i] == ',') {
// printf("%s", temp);
// clear temp string
} else {
// append the character string[i] to temp
}
}
Warum machst du es so? Es ist der falsche Ansatz, also das X Y Problem. Sie müssen uns sagen, ob es Einschränkungen gibt, um dieses Problem zu lösen und was sie sind. Ansonsten gibt es keinen guten Grund, dies so zu tun, wie Sie es möchten. Wenn Sie die Zeichenfolge nur ausdrucken wollen, wenn Sie ein Komma gefunden haben, verwenden Sie einfach 'fputc()' und drucken Sie jedes Zeichen in dem Moment, in dem Sie es finden, und wenn es ein Komma ist, drucken Sie ein '\ n' und gehe zur nächsten Zeile. –
Erstes Problem, Sie verstehen [tag: c] Strings nicht. Wenn Sie sie verstehen, schreiben Sie nicht für (i = 0; i