Ahoj, toto téma tu už kdysi bylo, ale nikde jsem nenašla funkční řešení. Mám pokus o program na Slovní fotbal, ale pokaždé mi vrátí odpověď, že slovo nebylo nalezeno ve slovníku. Prolezla jsem spoustu stránek, ale nikde jsem se nedočetla o funkčním řešení. Pomůžete, prosím? Děkuju
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int kontrola(char *slovo_s)
{
FILE *fr;
fr = fopen ("slovnik.txt", "r");
char slovo[1024];
if ((fr = fopen("slovnik.txt", "r")) == NULL)
{
printf ("Soubor se nepodarilo otevrit.\n");
system ("pause");
return 1;
}
int i;
while (fgets(slovo, sizeof (slovo), fr) != NULL)
{
int znaku = 0;
for (i = 0; i < sizeof (slovo); i++) {
if (slovo[i] == ';') {
break;
}
znaku++;
}
char slovo_t[znaku+1];
for (i = 0; i < znaku; i++) {
slovo_t[i] = slovo[i];
}
if (strcmp(slovo_s, slovo_t) == 0) {
fclose(fr);
return 1;
}
}
fclose(fr);
return 0;
}
int main(int argc, char** argv) {
char slovo [50], temp [50], p;
int error = 0;
printf("SLOVNI FOTBAL\n");
printf("tady budou pravidla hry\n");
printf("Zadej pismeno, jimz bude hra zacinat: ");
scanf("%s", temp);
p = temp[0];
int hrac = 1;
do {
printf("Hrac %d -> Zadej slovo: ", hrac);
scanf("%s", slovo);
if (p != slovo[0]) {
printf("Slovo nezacina znakem '%c'\n", p);
error++;
} else if (kontrola(slovo) == 0) {
printf("Slovo neni ve slovniku!\n");
error++;
}
if (error > 0) {
printf("Vitezem se stava hrac %d.\n", hrac == 1?2:1);
break;
} else {
p = slovo[strlen(slovo) - 1];
if (hrac == 1) {
hrac++;
} else {
hrac = 1;
}
}
} while (error <= 0);
printf("Pokracuj stiskem klavesy... ");
return (EXIT_SUCCESS);
}