- ベストアンサー
プログラミング(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; } お願いします。
- みんなの回答 (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("その他");
その他の回答 (1)
- kt1965
- ベストアンサー率34% (116/339)
カテゴリー違いかも知れませんが、とりあえず回答しておきます。 特に問題は無いです。ただし、scanfのところが問題になるでしょう。 正確には、scanf("%d",a);です。 なぜならば、%fで読み込むと、floatになって、intで取り込めない。 float型は、大抵の場合にはIEEEの仕様になりますので、全然違う値になります。 仕事用に作る場合には、判別用の定数をマクロにしておいて、EBICDIC、ASCII、EUC、Unicodeのそれぞれに対応できるようにしておきます。
お礼
返信ありがとうございます。 %fでやってみましたがだめでした。 scanfにHを入れて実行したところ、”その他”としか表示できません。 小文字も試しましたが、同じ結果でした。
お礼
&つけるのと、char型のところとかいろいろと忘れてました。 ありがとうございました。