teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

実行結果追記

2020/06/15 10:03

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -26,4 +26,13 @@
26
26
  i++;
27
27
  }
28
28
  }
29
+ ```
30
+ 結果
31
+ ```
32
+ a[0]=26
33
+ a[1]=191
34
+ a[2]=36
35
+ a[3]=84
36
+ a[4]=241
37
+ a[5]=133
29
38
  ```

2

コード追記

2020/06/15 10:03

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -3,4 +3,27 @@
3
3
  ---
4
4
 
5
5
  `char Sbuf[2];`
6
- NULL文字が付くため、2ではバッファサイズが足りません。
6
+ NULL文字が付くため、2ではバッファサイズが足りません。
7
+
8
+ ---
9
+
10
+ なるべく元のコードに沿って書くと、
11
+ ```C
12
+ #include <stdio.h>
13
+ #include <string.h>
14
+ void main()
15
+ {
16
+ char* str = "1ABF2454F185";
17
+ char Sbuf[3];
18
+ int len = (int)strlen(str) / 2;
19
+ int i = 0;
20
+ int a[6] = { 0 };
21
+ while (i < len)
22
+ {
23
+ sscanf(&str[i*2], "%2s", Sbuf);
24
+ a[i] = strtoul(Sbuf, NULL, 16);
25
+ printf("a[%d]=%d\n", i, a[i]);
26
+ i++;
27
+ }
28
+ }
29
+ ```

1

指摘追加

2020/06/15 10:02

投稿

SHOMI
SHOMI

スコア4079

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