回答編集履歴
2
加筆
test
CHANGED
@@ -11,3 +11,63 @@
|
|
11
11
|
「追記」
|
12
12
|
|
13
13
|
出来ることならソースはそのまま載せましょう。エラーメッセージの行番号での検索が難しくなります。
|
14
|
+
|
15
|
+
「加筆」
|
16
|
+
|
17
|
+
```c
|
18
|
+
|
19
|
+
int check(void)
|
20
|
+
|
21
|
+
{
|
22
|
+
|
23
|
+
char str[30];
|
24
|
+
|
25
|
+
int i;
|
26
|
+
|
27
|
+
printf("英小文字および数字を使った文字列を入力してください:");
|
28
|
+
|
29
|
+
scanf("%s", str);
|
30
|
+
|
31
|
+
for (i = 0; str[i] != '\0'; i++) {
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
if (islower(str[i]) || isdigit(str[i])) {
|
36
|
+
|
37
|
+
return 0; // ←小文字あるいは数字
|
38
|
+
|
39
|
+
// …此処で拾っているからelse節には小文字/数字以外!
|
40
|
+
|
41
|
+
} else {
|
42
|
+
|
43
|
+
if (islower(str[i]) || !(isdigit(str[i]))) {
|
44
|
+
|
45
|
+
return 1; // ←小文字か数字以外
|
46
|
+
|
47
|
+
} else if (!(islower(str[i])) || isdigit(str[i])) {
|
48
|
+
|
49
|
+
return 2; // ←数字か小文字以外
|
50
|
+
|
51
|
+
} else {
|
52
|
+
|
53
|
+
return 3;
|
54
|
+
|
55
|
+
}
|
56
|
+
|
57
|
+
}
|
58
|
+
|
59
|
+
}
|
60
|
+
|
61
|
+
}
|
62
|
+
|
63
|
+
/*
|
64
|
+
|
65
|
+
結局else節の数字や小文字の判定はいらないのでは?
|
66
|
+
|
67
|
+
*/
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
```
|
72
|
+
|
73
|
+
文字列に小文字あるいは数字以外が含まれているか判定しているようですが、"a0B-=*/"等の入力があっても0が帰りますがいいのでしょうか?
|
1
追記
test
CHANGED
@@ -6,4 +6,8 @@
|
|
6
6
|
|
7
7
|
については'}'を追加しましたが、こんどは最後の'}'が余分です。
|
8
8
|
|
9
|
-
![
|
9
|
+
![vim](d696e39386f546779cb26551db83ced1.png)
|
10
|
+
|
11
|
+
「追記」
|
12
|
+
|
13
|
+
出来ることならソースはそのまま載せましょう。エラーメッセージの行番号での検索が難しくなります。
|