Wie mache ich in C ein char array wieder leer?
Hab in char line[MAX_LENGTH] was eingelesen und brauche es wieder zu leeren.
Char array leeren?
-
-
-
Hmm eigentlich hat es mir nicht sehr geholfen.
Ich versuche einen invertstr program zu machen, es liest zeilenweise aus dem stdin, invertiert die Zeile und gibt wieder aus.
Wenn ich das invertline[0] = '\0' benutze dann ist das invertline für immer leer.
Hier der Source:C
Alles anzeigen#include <errno.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_LENGTH 50 int main (int argc, char **argv) { char line[MAX_LENGTH+1]; char invertline[MAX_LENGTH]; int x, i; while (fgets (line, sizeof (line), stdin) != NULL) { x = (strlen (line) - 1); for (i = 0; i < (strlen (line) -1); i++) { invertline[x--] = line[i]; } printf ("line size: %i\n", strlen (invertline)); printf ("inverted line: %s\n", invertline); invertline[0] = '\0'; } return 0; }
-
Hmm eigentlich hat es mir nicht sehr geholfen.
Ich versuche einen invertstr program zu machen, es liest zeilenweise aus dem stdin, invertiert die Zeile und gibt wieder aus.
Wenn ich das invertline[0] = '\0' benutze dann ist das invertline für immer leer.
Hier der Source:C
Alles anzeigen#include <errno.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_LENGTH 50 int main (int argc, char **argv) { char line[MAX_LENGTH+1]; char invertline[MAX_LENGTH]; int x, i; while (fgets (line, sizeof (line), stdin) != NULL) { x = (strlen (line) - 1); for (i = 0; i < (strlen (line) -1); i++) { invertline[x--] = line[i]; } printf ("line size: %i\n", strlen (invertline)); printf ("inverted line: %s\n", invertline); invertline[0] = '\0'; } return 0; }
Ich glaube Dein Problem ist, dass Du vergisst '\0' am Ende von invertline zu setzen. Dadurch gibt er immer den ganzen puffer aus.
Versuche einmal, ob invertline[x+1] = '\0' vor der for-Schleife das Problem löst. -
Ich glaube Dein Problem ist, dass Du vergisst '\0' am Ende von invertline zu setzen. Dadurch gibt er immer den ganzen puffer aus.
Versuche einmal, ob invertline[x+1] = '\0' vor der for-Schleife das Problem löst.Toll, es hat geklappt
Danke:thumb:
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!