課題
if-elseの代わりに条件式を使って、大文字を小文字に変換する関数lowerを書き直せ。
回答
#include <stdio.h> int lower(int c); /* * @fn Main * @brief * @param * @return * @note */ int main(void) { int c, a; c = 'a'; a = lower(c); printf("%c, %c\n", c, a); c = 'b'; a = lower(c); printf("%c, %c\n", c, a); c = 'c'; a = lower(c); printf("%c, %c\n", c, a); c = 'x'; a = lower(c); printf("%c, %c\n", c, a); c = 'y'; a = lower(c); printf("%c, %c\n", c, a); c = 'z'; a = lower(c); printf("%c, %c\n", c, a); c = 'A'; a = lower(c); printf("%c, %c\n", c, a); c = 'B'; a = lower(c); printf("%c, %c\n", c, a); c = 'C'; a = lower(c); printf("%c, %c\n", c, a); c = 'X'; a = lower(c); printf("%c, %c\n", c, a); c = 'Y'; a = lower(c); printf("%c, %c\n", c, a); c = 'Z'; a = lower(c); printf("%c, %c\n", c, a); } /* * @fn lower * @brief * @param * @return * @note */ int lower(int c) { return (c >= 'A' && c <= 'Z') ? (c + 'a' - 'A') : c; }
実行結果
a, a b, b c, c x, x y, y z, z A, a B, b C, c X, x Y, y Z, z