Nie działa porównywanie charów.

0

Próbowałem dwóch metod, jednak pierwsza zwraca False gdy warunek jest spełniony, a druga zawiesza program.

if (text[1] == "a") y = 2; else y = 1;
cmp = strncmp(text[1], "a", 1);
if ((cmp<0) || (cmp>0)) {y = 1;} else {y = 2;}

Czemu tak sie dzieje i co zrobić żeby tak się nie działo?

0
TomRiddle napisał(a)

Próbowałem dwóch metod, jednak pierwsza zwraca False gdy warunek jest spełniony, a druga zawiesza program.

To spróbuj przeczytać jakiś kurs, c-stringi to nie chary, w C nie ma false.

y = text[0] == 'a' ? 2 : 1;

C to nie gów... Delphi, tutaj tablice indeksuje się po ludzku, od zera.

y = strncmp(&text[0], "a", 1) == 0 ? 2 : 1

Krócej:

y = !strncmp(text, "a", 1) ? 2 : 1
TomRiddle napisał(a)

Czemu tak sie dzieje i co zrobić żeby tak się nie działo?

Dzieje się bo klepiesz na ślepo i traktujesz C jak Delphi z klamerkami, przeczytaj jakiś tutorial żeby się tak nie działo.

1 użytkowników online, w tym zalogowanych: 0, gości: 1