teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

誤記訂正とサンプルコード追加

2020/08/20 14:25

投稿

mjk
mjk

スコア303

answer CHANGED
@@ -1,5 +1,5 @@
1
+ 質問1 `printf("%d \n", ch[0]);`
1
- 質問 `printf("i:%d c:%d \n", i, c);`
2
+ 質問 `printf("i:%d c:%d \n", i, c);`
2
- 質問2 `printf("%d \n", ch[0]);`
3
3
 
4
4
  気になることはデバッグしたり処理途中の変数の中身を出力すると一目瞭然なことがありますよ。
5
5
  ch[0]の中身は整数値で、例えば英小文字の'a'は文字コード97です
@@ -58,4 +58,27 @@
58
58
  getchar();
59
59
  return (0);
60
60
  }
61
+ ```
62
+
63
+
64
+ 参考までに同じ結果を返すサンプルです。
65
+ 文字コードが分かっているので配列に文字列を用意してループで添字を判定しなくとも計算だけで同じ結果を出力出来ます。
66
+ ```C
67
+ #include <stdio.h>
68
+
69
+ int main(void) {
70
+ char ch[4];
71
+ printf("英文字を入力してください:");
72
+ scanf("%s", ch);
73
+
74
+ if (ch[0] >= 65 && ch[0] <= 90)
75
+ printf("それは英大文字の%d番目です。\n", ch[0] - 64);
76
+ else if (ch[0] >= 97 && ch[0] <= 122)
77
+ printf("それは英小文字の%d番目です。\n", ch[0] - 96);
78
+ else
79
+ printf("それは英文字ではありません。\n");
80
+
81
+ getchar();
82
+ return (0);
83
+ }
61
84
  ```