回答編集履歴

2

コードの修正(不要な変数の宣言を削除)

2021/01/24 04:39

投稿

kazuma-s
kazuma-s

スコア8224

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 を使うコードを追加

2021/01/24 04:39

投稿

kazuma-s
kazuma-s

スコア8224

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
+ ```