Hile bei einem Programm



  • Hi@all,
    bin gerade dabei C in der Schule zu lernen. Jetzt ist aber der Fall das ich erst wieder in 3Wochen habe und bis dahin was machen will. Jetzt ist mir eine Programm eingefallen. Ich möchte praktisch gesehen 3 Buchstaben eintippen. Diese sollen dann von einer scanf-Funktion ausgelesen werden.Dann möchte ich wiederrum mit einer if-Funktion einen Text ausgeben lassen falls die 3 Buchstaben die sind die hinterlegt sind...Ich muss dazu sagen das ich Programmieren erst ein paar mal in der Schule hatte.Hier nun mal mein Versuch der aber nicht geht...
    #include <stdio.h>
    #include <stdlib.h>

    int main (void)
    {
    char kurzzeichen;

    printf("\t\tKurzzeichen-Programm");
    printf("\n\nTippen sie nun das Kurzzeichen ein: ");
    scanf("%c",&kurzzeichen);
    if (kurzzeichen=abc)
    {
    printf("Der Name dazu ist: XYZ");
    }

    system("pause>null");
    return 0;
    }
    Kann mir einer sagen was ich falsch mache bzw, wies richtig geht???



  • ...wenn du 3 zeichen einlesen möchtest, musst du 3x scanf benutzen, oder alles als string einlesen. bei deiner if-abfrage versuchst du "kurzzeichen", "abc" zuzuweisen, benutze also statt "=" lieber "==".
    aber naja schau da lieber mal vorbei^^ http://www.pronix.de/pronix-4.html



  • könnte mir vielleicht einer mal das Programm kurz so schreiben das es funktioniert?? habe zwar die Änderungen übernommen aber es geht immer noch nicht...



  • Erstmal solltest du deinen Code schön formatieren und in [cpp]-Tags packen. Dann einen aussagekräftigen Titel überlegen. Ähmm, nein. Fang mit dem Tutorial an 😉



  • du könntest anstatt einen string zu überprüfen auch 3 if-bedingungen setzen, und wenn die alle passen, dass die lösung ausgegeben wird.
    du solltest aber dran denken, dass du den speicher bei einer scanf-abfrage immer wieder löschst, da es sonst zu einer falschen eingabe kommt 😉



  • zilb schrieb:

    du könntest anstatt einen string zu überprüfen auch 3 if-bedingungen setzen, und wenn die alle passen, dass die lösung ausgegeben wird.

    Nö. Stringvergleiche macht man mit man: strcmp.

    zilb schrieb:

    du solltest aber dran denken, dass du den speicher bei einer scanf-abfrage immer wieder löschst, da es sonst zu einer falschen eingabe kommt 😉

    Besser noch: Keine Eingaben mit scanf machen. man: fgets ist viel cooler.



  • TactX schrieb:

    zilb schrieb:

    du könntest anstatt einen string zu überprüfen auch 3 if-bedingungen setzen, und wenn die alle passen, dass die lösung ausgegeben wird.

    Nö. Stringvergleiche macht man mit man: strcmp.

    blöd ausgedrückt. ich meinte anstatt einen stringvergleich 3 scanf-abfragen.



  • zilb schrieb:

    blöd ausgedrückt. ich meinte anstatt einen stringvergleich 3 scanf-abfragen.

    Mir ist nicht ganz klar was du darunter verstehst.



  • #include <stdio.h>
    #include <string>
    
    int main (void)
    {
    
    char abc[] = "abc";
    char kurzzeichen[20];
    int result;
    
    printf("\t\tKurzzeichen-Programm");
    printf("\n\nTippen sie nun das Kurzzeichen ein: ");
    scanf("%s", kurzzeichen);
    
    result = strcmp(kurzzeichen,"abc");
    
    if(result==0)
        printf("Der Name dazu ist: XYZ");
    
    return 0;
    }
    

    nicht perfekt aber glaub am einfachsten zum verstehen



  • also ich würde

    scanf("%20s", kurzzeichen);
    

    benutzen, oder gleich fgets


Anmelden zum Antworten