String von Eingabe in char-Array einlesen und ausgeben



  • Hi ihr!

    Versuche gerade im Titel genanntes 'Programm' zu schreiben.

    Hier mal der Code:

    int main(void) {
    
    	char *string[5];
    	char input[25];
    	int i = 0;
    	while(fgets(input, 25, stdin) != NULL) {
    		string[i] = input;
    		i++;
    		if(i == 5) {
    			for(int j = 0; j < 5; j++) {
    				printf("%s\n", string[j]);
    			}
    			return EXIT_SUCCESS;
    		}
    	}
    	return EXIT_SUCCESS;
    }
    

    Das Programm soll nichts anderes machen, als 5 nacheinander folgende Eingaben einzulesen, in ein Array abzuspeichern und anschließend auszugeben.

    Jedoch beim ausühren passiert folgendes:

    Hallo
    Welt
    wie
    gehts
    dir?
    
    dir?
    dir?
    dir?
    dir?
    dir?
    

    Also er scheint nur das letzte Element im Array zu speichern.

    Hoffe, ihr könnt mir helfen. 🙂



  • C-Grundlagen:
    strcpy(string[i],input); statt string[i] = input;



  • Oh mann. Klar. Damit weiterzuarbeiten klappt. Vielen Dank 😃



  • Bleibt trotzdem Müll.
    Dein "string" ist ein Array von 5 Zeigern auf char, die auf undefinierten Speicher zeigen, in den du reinkopierst.
    Das kann nicht funktionieren, außerdem hast du jeweils (meistens) ein '\n' am Ende deiner Strings stehen.


Anmelden zum Antworten