Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Jyzak C - porovnávání řetězce (char[])

Dobrej,

ví někdo proč mě tento program v C nefunguje správně? Dle mě je to správně, ale ten datový typ char dělá problémy. V C++ je string a tam to jde normálně, ale zde nevím.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char x[20];

    do {
    printf("Zadej heslo: ");
    scanf("%s", &x);
    } while (x != 'abcd1234');
    printf("Super!");

    getch();
    return 0;
}
Předmět Autor Datum
porovnavas pointre (smerniky) ktore nie su nikdy stejne. Snad by si mal zacat studovanim ze co to je…
MM.. 14.04.2014 17:43
MM..
scanf("%s", &x); scanf("%s", x);
pme 14.04.2014 17:45
pme
A kedze x uz je pointer, tak do scanf mas davat len x, a ne &x A na porovnavanie stringov v C je fu…
MM.. 14.04.2014 17:45
MM..
A string v C sa dava do uvodzoviek a ne do apostrofov. To je uplne nieco ine. poslední
MM.. 14.04.2014 17:46
MM..

A kedze x uz je pointer, tak do scanf mas davat len x, a ne &x

A na porovnavanie stringov v C je funkcia strcmp.
A ten program je deravy jak emental. (neosetrena dlzka, nad 20 to prepise stack a hacker si moze robit co chce spustat viry atd alebo vstupovat bez hesla)

Zpět do poradny Odpovědět na původní otázku Nahoru