• ベストアンサー

プログラミング(ASCIIコード)

プログラミングのif文なのですが、どうやって表現すればいいのかわかりません。 文字を入れると小文字か大文字か数字かを表示させたいんです。 { float a; printf("判別したい文字:"); scanf("%f",a); if((a>=65)&&(a<=90)) { printf("英大文字"); } else if((a>=97)&&(a<=122)) { printf("英小文字"); } else if((a>=48)&&(a<=57)) { printf("数字"); } else { printf(その他); } return 0; } お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • take0_0
  • ベストアンサー率46% (370/804)
回答No.2

以下で動きます。どうしてそうなるかは、じっくり考えてみてくださいね。 char a; printf("判別したい文字:"); scanf("%c",&a); if((a>=65)&&(a<=90)) printf("英大文字"); else if((a>=97)&&(a<=122)) printf("英小文字"); else if((a>=48)&&(a<=57)) printf("数字"); else printf("その他"); なお、個人的にはこの方が好み。 else if((a>='a')&&(a<='z')) printf("英小文字"); else if((a>='0')&&(a<='9')) printf("数字"); else printf("その他");

tonyemly
質問者

お礼

&つけるのと、char型のところとかいろいろと忘れてました。 ありがとうございました。

その他の回答 (1)

  • kt1965
  • ベストアンサー率34% (116/339)
回答No.1

カテゴリー違いかも知れませんが、とりあえず回答しておきます。 特に問題は無いです。ただし、scanfのところが問題になるでしょう。 正確には、scanf("%d",a);です。 なぜならば、%fで読み込むと、floatになって、intで取り込めない。 float型は、大抵の場合にはIEEEの仕様になりますので、全然違う値になります。 仕事用に作る場合には、判別用の定数をマクロにしておいて、EBICDIC、ASCII、EUC、Unicodeのそれぞれに対応できるようにしておきます。

tonyemly
質問者

お礼

返信ありがとうございます。 %fでやってみましたがだめでした。 scanfにHを入れて実行したところ、”その他”としか表示できません。 小文字も試しましたが、同じ結果でした。

関連するQ&A

専門家に質問してみよう