我不需要用printf输出,我要把数据赋值给数组
时间: 2023-10-25 22:06:40 浏览: 30
如果你不需要使用`printf`函数输出数据,而是需要将数据赋值给一个数组,可以使用类似下面的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define ARRAY_SIZE 4
int main() {
char *txt = "11111111222222223333333344444444";
unsigned int arr[ARRAY_SIZE];
int i;
char buf[9]; // 用于临时存储16进制数的字符数组
for (i = 0; i < ARRAY_SIZE; i++) {
strncpy(buf, txt + i * 8, 8); // 从txt中复制8个字符到buf中
buf[8] = '\0'; // 字符串结尾添加'\0'
arr[i] = (unsigned int)strtoul(buf, NULL, 16); // 将16进制字符串转换为整数并存储到数组中
}
// 输出数组中的数据
for (i = 0; i < ARRAY_SIZE; i++) {
printf("%08x ", arr[i]);
}
printf("\n");
return 0;
}
```
这段代码会将字符串中的每个16进制数转换为一个32位的无符号整数,并存储到数组中。在每次循环中,使用`strncpy`函数从字符串中复制8个字符到一个临时数组`buf`中,然后使用`strtoul`函数将`buf`中的16进制字符串转换为整数,并将其存储到数组中。
最后,我们可以使用一个循环遍历数组,并使用`printf`函数输出数组中的数据。