Einfache If-Anweisung will nicht



  • Hallo, folgender Problemfall:

    char NmsaActive[2];
           printf("Nmsa1 aktiv? [y/n]\n");
           scanf("%s", &NmsaActive);
    
    if(NmsaActive == "y")
           {
                         printf("Yes!!");
                         DateinamenSecond6[60]=".5620_act.nmsa1.html";
                         DateinamenSecond7[60]=".5620_ina.nmsa2.html";
                         }else
                         {
                             printf("No!!");
                             DateinamenSecond6[60]=".5620_ina.nmsa1.html";
                             DateinamenSecond7[60]=".5620_act.nmsa2.html";
                         }
    

    ..Zeigt er mir immer No!! an obwohl ich y eingebe.. wo liegt der Fehler?

    LG Mike



  • strings vergleicht man nicht mit == sondern mit strcmp.



  • Danke !



  • Nach deinen bisherigen Beiträgen zu urteilen, hast du von der Stringverarbeitung in C eine falsche Vorstellung.

    Vergiss in der Hinsicht die Erfahrungen von anderen Programmiersprachen.
    Arrays (und somit Strings) sind in C anders.

    Auch solltest du darauf achten, wieviel Zeichen du in deinen Arrays einliest.

    scanf("%1s",  NmsaActive);
            ^    ^
            |    + Bei Arrays kommt da kein Adressoperator hin
            + Maximal ein Zeichen einlesen.
    


  • DirkB schrieb:

    Nach deinen bisherigen Beiträgen zu urteilen, hast du von der Stringverarbeitung in C eine falsche Vorstellung.

    Vergiss in der Hinsicht die Erfahrungen von anderen Programmiersprachen.
    Arrays (und somit Strings) sind in C anders.

    Ja, du hast recht.. aber mittlerweile hat's Klick gemacht und ich tu mir leichter.. C ist auch einfach nicht so gedacht für Strings und String-Array's.. ist eher fuer Zahlen gedacht meiner Meinung nach.. LG und Danke


Anmelden zum Antworten