質問編集履歴
1
誤字 文法の訂正 質問内容の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,39 +2,49 @@
|
|
2
2
|
現在c言語を勉強しています。
|
3
3
|
標準入力に英文を入力すると,大文字を小文字に,小文字を大文字に,数字を「*」に変換して
|
4
4
|
標準出力に出力するプログラムを書いていたのですが
|
5
|
-
どうしてもわからないことがありましたので投稿させていただきます
|
5
|
+
どうしてもわからないことがありましたので投稿させていただきます。
|
6
6
|
|
7
|
+
標準入力に
|
8
|
+
「qwErt\n
|
9
|
+
asdff\n
|
10
|
+
zxcvb\n」
|
7
|
-
|
11
|
+
と入力をした際に、標準出力に
|
12
|
+
「QWeRT\n
|
13
|
+
ASDFF\n
|
14
|
+
ZXCVB\n」
|
8
|
-
標準出力に
|
15
|
+
と標準出力に出力されてほしいのですが
|
9
|
-
おそらく空白や改行文字が原因だと思うのですが
|
10
|
-
どうすれば解決するのかわかりません。
|
11
16
|
|
17
|
+
「QWeRT\n
|
18
|
+
asdff\n
|
19
|
+
zxcvb\n」
|
20
|
+
といった風に一行目にはプログラムが適用されるのですが
|
21
|
+
二行目以降,プログラムが適用されず困っています。
|
22
|
+
|
12
23
|
有識者の方どなたか知恵をお貸しください。
|
13
24
|
```
|
14
25
|
#include <stdio.h>
|
15
26
|
|
16
27
|
int main(void) {
|
17
28
|
char ch[256];
|
18
|
-
int f;
|
29
|
+
int f=0;
|
19
|
-
|
30
|
+
|
20
|
-
|
31
|
+
while(fgets(ch,256,stdin)){
|
21
|
-
|
22
|
-
|
32
|
+
while(ch[f]!='\0'){
|
23
|
-
|
33
|
+
if('a'<=ch[f] && ch[f]<='z'){
|
24
|
-
|
34
|
+
ch[f] -= 'a'-'A';
|
35
|
+
}
|
36
|
+
else if('A'<=ch[f] && ch[f]<='Z'){
|
37
|
+
ch[f] +='a'-'A';
|
38
|
+
}
|
39
|
+
else if('0'<=ch[f] && ch[f]<='9'){
|
40
|
+
ch[f] = '*';
|
41
|
+
}
|
42
|
+
f++;
|
25
43
|
}
|
26
|
-
else if('A'<=ch[f] && ch[f]<='Z'){
|
27
|
-
ch[f] +='a'-'A';
|
28
|
-
}
|
29
|
-
else if('0'<=ch[f] && ch[f]<='9'){
|
30
|
-
|
44
|
+
printf("%s" , ch);
|
31
|
-
}
|
32
|
-
f++;
|
33
45
|
}
|
34
|
-
|
35
|
-
|
46
|
+
|
36
|
-
|
37
47
|
return 0;
|
38
|
-
|
48
|
+
|
39
|
-
}
|
49
|
+
}
|
40
50
|
```
|