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;
}
porovnavas pointre (smerniky) ktore nie su nikdy stejne.
Snad by si mal zacat studovanim ze co to je v C pole, co to je pointer, a tak. Staci na to aj google.
scanf("%s", x);
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)
A string v C sa dava do uvodzoviek a ne do apostrofov. To je uplne nieco ine.