» Poradna » Programy

Textové řetězce v jazyku C

Odpovědět  |  Zobrazit bez stromu  |  Upozornit redakci  |  nových odpovědí: 7/7
 |   |   |  [88.146.161.---]

Dobrý den, kde mám chybu? Chci, aby se po zadání správného "hesla" vytiskl "libovolný text", ale ačkoliv to kompilátor projde, tak to nedělá, co má...

#include
#include

int main(int argc, char *argv[])
{
char jmeno[15];
scanf("%s",jmeno);
if (jmeno == "Heslo") printf("Heslo je OK!");
system("PAUSE");
return 0;
}

Děkuji předem!

Odpovědi na otázku

 |   |   |  [88.146.161.---]

Prosím, prosím, nenajde se zde nikdo, kdo by mi poradil ?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [62.245.124.---]

V Ccku se porovnavaji retezce jinak
if (strcmp(jmeno,"Heslo") == 0) printf("Heslo je OK!");

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Ahoj. Tuším, že odpověď je v tom, že ukazatel na konstantní řetězec je něco jiného než pole znaků char.
Podmínka nebude nikdy splněna.

Pro porovnávání řetězců (respektive polí znaků) je funkce: strcmp

S tou by ti to mělo fungovat.


char jmeno[15];
scanf("%s",jmeno);

if (strcmp(jmeno,"Heslo")==0) printf("Heslo je OK!");
else
printf("Heslo NENI OK!");


Odpověď je možné hledat taky tady:
alpha.ujep.cz ...
a tady:
people.tuke.sk ...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [213.191.111.---]

V c jsem nedělal už aspoň 5 let, ale pokud moje chbá paměť slouží dobře, nemělo by být
scanf("%s", &jmeno);

Ale jak říkám, moje paměť a jazyk C nejsou moc v dobré kondici

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [62.177.69.---]

Neni protoze jmeno uz je sam o sobe ukazatel, tak neni treba tam dodavat &

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [88.146.161.---]

Děkuji moc "johnnash" i "Squad_leader", funguje to nyní ZCELA DLE MÝCH PŘEDSTAV!

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [89.111.89.---]

A jak se to chova pri zadani hesla dlouheho 15 a vice znaku?

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: #include, Libovolný text, Kompilátor



Určitě si přečtěte


7 novinek, na které se můžete těšit v jarní aktualizaci Windows 10

7 novinek, na které se můžete těšit v jarní aktualizaci Windows 10

** Nová verze bude uvolněna v průběhu jara ** Přinese několik novinek a opět vylepší design systému ** Pravděpodobný název bude Spring Creators Update odkazující na dvě předešlé aktualizace

21.  2.  2018 | Vladislav Kluska | 68

Hokej online: jak sledovat olympijské zápasy na internetu

Hokej online: jak sledovat olympijské zápasy na internetu

** Hokejové zápasy na olympijských hrách můžete sledovat i online ** Oproti minulý rokům se servis zpravodajství z Olympijských her změnil ** Některé disciplíny půjde sledovat i ve virtuální realitě

23.  2.  2018 | Stanislav Janů | 5


Aktuální číslo časopisu Computer

Ochraňte svou techniku před zloději

Testy All-in-One PC a herních monitorů

Proč byste měli chtít HDR televizi

Svět leteckých simulátorů