Kleines String-Problem



  • Hallo Leute,

    ich habe ein kleines String-Problem.
    Hier zunächst einmal ein Auszug aus dem Code:

    char list[11];
    int i;

    for(i=0; i<11; i++)
    {
    scanf_s("%s", &list[i]);

    }

    for(i=0; i<11; i++)
    {
    printf("%s", list[i]);

    Ich möchte eigentlich nur Stringwerte einlesen und wieder ausgeben lassen. Leider funktioniert das so nicht. Aber warum?

    Das Einlesen scheint noch zu funktionieren, nur die Ausgabe geht völlig schief.

    Gruß,
    student 08/15


  • Mod

    Ein char ist ein Zeichen. Du behandelst ihn wie eine Zeichenkette in einer objektorientierten Sprache. Das ist demnach gleich doppelt falsch, da es sich weder um eine Zeichenkette handelt; noch sind Zeichenketten in C so zu behandeln, sondern sind etwas low-leveliger.



  • list[i] ist vom Typ char, der Formatspezifizierer dafuer ist %c und nicht %s.
    Strings sind in C eine Folge von char, der Formatspezifizierer dafuer ist %s.
    Dein String ist ausserdem zu klein dimensioniert.



  • OKAY, habt ihr konkrete Vorschläge?

    Gruß
    student 08/15


  • Mod

    student 08/15 schrieb:

    OKAY, habt ihr konkrete Vorschläge?

    Wie lernst du C? Dir jetzt eine Lösung zum Abschreiben zu geben ist keine gute Idee. Du hast Zeichenketten in C offensichtlich komplett nicht verstanden, das Thema ist jedoch zu kompliziert, um es durch Angucken von fremden Code zu verstehen. Also solltest du mal in einem Lehrbuch lesen, wie das funktioniert. Vermutlich werden sich danach deine Fragen ganz von alleine lösen, falls nicht, kannst du dann konkretere Fragen stellen.



  • Ein Buch ueber C.



  • char list[11];
    int i;
    
    for(i=0; i<11; i++) {
        scanf_s("%c", &list[i]);
    }
    
    for(i=0; i<11; i++) {
        printf("%c", list[i]);
    }
    

    Ich habe mal dein Code geändert, so sollte/müsste es funktionieren.
    Nur mal als Denkstütze, mit %s kannst du ganze Zeilen einlesen/ausgeben und mit %c nur einzelne char Werte einlesen/ausgeben.
    Noch dazu würde ich dir dass Sachbuch vom Erlenkötter empfehlen. Ich habe es damals zu meinem Studium gekauft gehabt, TOP !!!


Anmelden zum Antworten