回答編集履歴
2
コードの修正(不要な変数の宣言を削除)
test
CHANGED
@@ -58,8 +58,6 @@
|
|
58
58
|
|
59
59
|
char str[100];
|
60
60
|
|
61
|
-
int i, j;
|
62
|
-
|
63
61
|
|
64
62
|
|
65
63
|
printf("入力して下さい\n");
|
1
strtol を使うコードを追加
test
CHANGED
@@ -39,3 +39,45 @@
|
|
39
39
|
}
|
40
40
|
|
41
41
|
```
|
42
|
+
|
43
|
+
数字は数値として取得したいようなので strtol を使ってみました。
|
44
|
+
|
45
|
+
```C
|
46
|
+
|
47
|
+
#include <stdio.h> // printf, scanf
|
48
|
+
|
49
|
+
#include <string.h> // strlen
|
50
|
+
|
51
|
+
#include <stdlib.h> // strtol
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
int main(void)
|
56
|
+
|
57
|
+
{
|
58
|
+
|
59
|
+
char str[100];
|
60
|
+
|
61
|
+
int i, j;
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
printf("入力して下さい\n");
|
66
|
+
|
67
|
+
scanf("%99s", str);
|
68
|
+
|
69
|
+
printf("strlen(str) %zu\n", strlen(str));
|
70
|
+
|
71
|
+
for (char *p = str; *p; )
|
72
|
+
|
73
|
+
if (*p >= '0' && *p <= '9')
|
74
|
+
|
75
|
+
printf("%ld 数字\n", strtol(p, &p, 10));
|
76
|
+
|
77
|
+
else
|
78
|
+
|
79
|
+
printf("%c 記号\n", *p++);
|
80
|
+
|
81
|
+
}
|
82
|
+
|
83
|
+
```
|