Wątek przeniesiony 2015-09-02 11:03 z C/C++ przez ŁF.

Co zwroci podana funkcja

0

Jaki będzie wynik wywołania lit('B') i lit('b') dla poniższej funkcji. Nie mam najmniejszego pojęcia o co tu chodzi jak by ktoś umiałby to rozpisać bym był bardzo wdzięczny.

 

char lit(char c)
{
return 'a' <= c && c <= 'z' ?c : 'a' + c - 'A';
}

Podobno w obu przypadkach B.

0

Sprawdź.

1

Wiesz czym jest ten operator ternarny?
'a' <= c porównuje kody ascii tych char'ow. Analogicznie ten zapis 'a' + c to dodanie tych kodów do siebie.

'a' <= c && c <= 'z' jeśli c jest pomiędzy 'a' i 'z' to zwraca c
'a' + c - 'A' w przeciwnym wypadku robi takie coś smiesznego (wyjaśnione wyżej).
Ta funkcja zwraca dla wielkich liter ich "mały odpowiednik".

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