回答編集履歴

3

実行結果追記

2020/06/15 10:03

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -55,3 +55,21 @@
55
55
  }
56
56
 
57
57
  ```
58
+
59
+ 結果
60
+
61
+ ```
62
+
63
+ a[0]=26
64
+
65
+ a[1]=191
66
+
67
+ a[2]=36
68
+
69
+ a[3]=84
70
+
71
+ a[4]=241
72
+
73
+ a[5]=133
74
+
75
+ ```

2

コード追記

2020/06/15 10:03

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -9,3 +9,49 @@
9
9
  `char Sbuf[2];`
10
10
 
11
11
  NULL文字が付くため、2ではバッファサイズが足りません。
12
+
13
+
14
+
15
+ ---
16
+
17
+
18
+
19
+ なるべく元のコードに沿って書くと、
20
+
21
+ ```C
22
+
23
+ #include <stdio.h>
24
+
25
+ #include <string.h>
26
+
27
+ void main()
28
+
29
+ {
30
+
31
+ char* str = "1ABF2454F185";
32
+
33
+ char Sbuf[3];
34
+
35
+ int len = (int)strlen(str) / 2;
36
+
37
+ int i = 0;
38
+
39
+ int a[6] = { 0 };
40
+
41
+ while (i < len)
42
+
43
+ {
44
+
45
+ sscanf(&str[i*2], "%2s", Sbuf);
46
+
47
+ a[i] = strtoul(Sbuf, NULL, 16);
48
+
49
+ printf("a[%d]=%d\n", i, a[i]);
50
+
51
+ i++;
52
+
53
+ }
54
+
55
+ }
56
+
57
+ ```

1

指摘追加

2020/06/15 10:02

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -1 +1,11 @@
1
1
  基数を指定して文字列を数値に変換する[strtoul](https://linuxjm.osdn.jp/html/LDP_man-pages/man3/strtoul.3.html)という関数があります。
2
+
3
+
4
+
5
+ ---
6
+
7
+
8
+
9
+ `char Sbuf[2];`
10
+
11
+ NULL文字が付くため、2ではバッファサイズが足りません。