Ausgabe von String in C Funktioniert nicht

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ausgabe von String in C Funktioniert nicht

    Hallo zusammen,
    ich möchte einen strin Auslesen und in das In einen satz ausgaben das Einlaesen kallp auch schon nur bei der Ausgabe hängt es noch vielicht kann mir einer von euch weiterhelfen`!
    der C Code

    Quellcode

    1. #include <stdio.h>
    2. int formatHalloWorld(){
    3. char * name;
    4. printf("Hallo du, \nwie heisst du denn?\n");
    5. scanf("%s",name);
    6. printf("Hallo %s ,wie gehts dir so?\n",name);
    7. return 1;
    8. }
    9. int main(int argc, char** argv){
    10. int checkInt;
    11. checkInt = formatHalloWorld();
    12. scanf("");
    13. return 0;
    14. }
    Alles anzeigen


    und hier die Fehlerhafte Ausgabe also Der name iwrd nicht richtig ersetzt.

    Quellcode

    1. Hallo du,
    2. wie heisst du denn?
    3. niko
    4. Hallo #0@ ,wie gehts dir so?
    5. Press any key to continue . . .


    MfG Niko
    <---Wer Rechtschreibfehler findet das sie behalten--->
  • Quellcode

    1. char * name


    ein zeiger ?

    keine ahnung ob das geht, bin selbst nicht so erfahren, aber ich bin mir relativ sicher, dass man das SO nicht macht. das ist auch relatives grundlagen zeug was eigentlich in fast jedem buch steht. die ausgabe hat tendenzen einer adresse, keine ahnung, hab das noch nie gesehen.

    versuche mal lieber

    Quellcode

    1. string name;


    habs nicht ausprobiert, aber so sollte das gehen. auch in der ausgabe-anweisung gibst du ein %s an, bedeutet ein string soll hier kommen. wenn du aber die variable name dazu assozierst, dann versucht er dir eine adresse auszugeben. von daher falsch.

    edit: oder war es ein char array. hm...habs wieder vergessen lol. zuviel level-design :)

    edit2: oder probier mal

    Quellcode

    1. scanf("%s",name);


    zu

    Quellcode

    1. scanf("%s",&name);

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Qualmi ()

  • @Niko: Ich vermute du musst entweder einen String mit Konstanter Laenge angeben (string[10]) oder mit alloc einen Speicherplatz allokieren.


    @Qualmi: In C gibt es leider keine Strings. Strings sind dort tatsaechlich ein Zeiger auf einen (null-terminiertes) Char-Array.

    @
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]