サイトマップ / C言語講座>出入り口>総目次>目次:流れの制御>三項演算子(2)
/* 今日も三項演算子について、学びます。
putchar(( c >= 'a' && c <= 'z')? (c - 'a' + 'A'): ((c >= 'A' && c <= 'Z')? (c - 'A' + 'a'): c));
上記のコードを実行すると何が起こるでしょうか。かなり時間をかけて詳しく見ないとわからないと思います。これは極端な例ですが、少し複雑な処理を行う時は適切なコメントを付けておきましょう。
上記のコードの最小単位のカッコの中を、日本語に置き換えると次のようになります。
putchar((cが小文字)? (cを大文字にする): ((cが大文字)? (cを小文字にする): cはそのまま));
" 英小文字なら大文字に、大文字なら小文字に変換し、どちらでもなければ変換しないで画面に出力する " ということです。これを if else を使い、更に、コメントを付けたものが今日のソースプログラムです。これ以上の説明はしません。コメントを見て下さい。 */
#include <stdio.h> void main(void); void main(void) { int c; printf("\n英大文字か小文字を幾つか入力して下さい\n"); while ((c = getchar( )) != '\n') { /* キーボードから1文字入力 */ if (c >= 'a' && c <= 'z') /* c が小文字ならば */ c = c - 'a' + 'A'; /* 大文字に変換 */ else if (c >= 'A' && c <= 'Z') /* c が大文字ならば */ c = c - 'A' + 'a'; /* 小文字に変換 */ putchar(c); /* 変換後の文字を出力 */ } } |
/*
c = c - 'a' + 'A' ;
上記のコードについて、補足説明をします。文字は数字で管理されています。アルファベットの大文字と小文字は、abc 順にそれぞれ連続した数字が付けられています(復習)。従って、もしc が 'a' なら、上記の式に代入すると、
c = 'A';
となり、大文字に変換されます。 */
/* (C) 2000- YFプロ. All Rights Reserved. */ 提供:C言語講座−それ自体コンパイルできる教材を使った講座です−