Poniższe fragmenty kodu pochodzą z programu C.Porównywanie wprowadzanych przez użytkownika znaków w C
Użytkownik wprowadza Y lub N.
char *answer = '\0';
scanf (" %c", answer);
if (*answer == ('Y' || 'y'))
// do work
Nie mogę zrozumieć, dlaczego to if
oświadczenie nie ocenia się prawdą.
Sprawdziłem dla wejścia y lub n z printf
i jest tam, więc wiem, że otrzymuję dane wejściowe użytkownika. Również, gdy zastępuję warunek instrukcji if wartością 1 (czyniąc ją prawdą), to jest ona poprawnie obliczana.
.. lub przez wywołanie 'malloc()' – Arun
@ArunSaha: tak, lub spraw, aby wskazywało na lokalną zmienną char. – codaddict
dlaczego konieczne jest wprowadzenie spacji przed% c w scanf? dla mnie nie działa, jeśli usunę spację przed% c w scanf. – hunch