program v C - problem

Sekcia: Ostatné 31.07.2007 | 15:41
avava   Návštevník
Ahojte. Zacinam s Cckom a chcel by som sa opytat, kde v programe mam chybu:
#include <stdio.h>

int main(void) {
char s[256];
printf("Blbost v0.1\n"
"--------------------\n"
"Vsetko co napises ti vypisem spat. Pre koniec stlac \"K\" "
"alebo napis \"Koniec\"\n");
while(1) {
scanf("%s",&s);
printf("Zadal si: %s\n",s);
if (s == "K" || s == "Koniec") {
printf("som tu");
break;
}
}
return 0;
}

program by mal vzdy vypisat to, co predtym clovek vlozi ako input (a stlaci enter). To funguje. Dalej by sa vsak mal zastavit, ked clovek napise "K" alebo "Koniec". Avsak do vnutra tejto podmienky nikdy nevojde (ani ked dam ako vstup zmieneny K, resp. Koniec). Prosim neviete niekto co s tym?
    • Re: program v C - problem 31.07.2007 | 15:44
      Avatar Miroslav Bendík Gentoo  Administrátor
      s je pointer. Stringy sa porovnávajú pomocou strcmp.
      • Re: program v C - problem 31.07.2007 | 16:00
        avava   Návštevník
        dakujem vsetkym za rychle odpovede.
        pre zmenu, ak vsak program upravim takto, tak skonci po zadani akeho kolvek retazca.
        #include <stdio.h>

        int main(void) {
        char s[256];
        printf("Blbost v0.1\n"
        "--------------------\n"
        "Vsetko co napises ti vypisem spat. Pre koniec stlac \"K\" "
        "alebo napis \"Koniec\"\n");
        while(1) {
        scanf("%s",&s);
        printf("Zadal si: %s\n",s);
        if (strcmp(s,"Koniec")) {
        break;
        }
        }
        return 0;
        }
        • Re: program v C - problem 31.07.2007 | 16:25
          Avatar martin Fedora 13  Používateľ
          tu podmienku skus prepisat na:
          if (strcmp(s,"Koniec")==0)
          ....
          strcmp vracia 0 ak su retazce zhodne, nie 1, cize ak je ten prvy vacsi ako druhy tak ti to vrati 1 a tak to prejde tou podmienkou if ako kladne, tym padom sa ti vypne...
          dufam ze chapes:)
          • Re: program v C - problem 31.07.2007 | 16:35
            avava   Návštevník
            dik moc :)
    • Re: program v C - problem 31.07.2007 | 15:46
      IcT86   Návštevník
      eeeh mozno lamerim (robim v c#) ale co je to za operator v tej podmienke "||" ???
      nemal by si tam mat skor "or" ?
      • Re: program v C - problem 31.07.2007 | 15:47
        Avatar Miroslav Bendík Gentoo  Administrátor
        || je or
        • Re: program v C - problem 31.07.2007 | 15:48
          IcT86   Návštevník
          hehe njn lamerim :)

          p.s. mr Bendik nemohol by si pozret na "X troubles" temu ? :)
          • Re: program v C - problem 31.07.2007 | 15:55
            Avatar uid0 Debian  Používateľ
            podla toho co som vygooglil aj C# ma ||

            pozor na to, v niektorych jazykoch mas moznost nejake veci vyjadrit viacerymi sposobmi, ale maju roznu precendenciu!
            Debian. apt-get into it…
            • njn 31.07.2007 | 16:53
              IcT86   Návštevník
              njn mam sa este co ucit.. :)
      • Re: program v C - problem 31.07.2007 | 15:48
        Avatar uid0 Debian  Používateľ
        nie, to je logicky sucet
        Debian. apt-get into it…
      • Re: program v C - problem 31.07.2007 | 20:45
        Avatar borg Fedora  Administrátor
        || je aj v C#, ale kedze v nom robis tak to asi vies ;)