我有这段代码将数组 src
子字符串化为 4 个字符,并将每个子字符串保存到 char dest[5];
数组中。它工作正常。现在,我想将每 4 个字符存储为另一种格式 - unsigned int- %u
在另一个数组 unsigned long k[4] ;
我一直在尝试使用 sprintf() 将格式化的输入存储在 k 中,但它没有给我数组 dest 中每个元素的转换。
所以,我可以有 k[0] = dest[0]、k[1]= dest[1],等等!
unsigned int k [4];
char dest[5] ; // 4 chars + terminator */
char src [] = "123456789abcdefg"
int len = strlen(src);
int b = 0;
int bb=1;
while (b*4 < len) {
strncpy(dest, src+(b*4), 4);
printf("loop %s\n",dest);
sprintf(&k, "%u",dest);
puts(k);
b++;
}
我刚得到解决方案,
unsigned long *k = (unsigned long *) dest;
无论如何,谢谢你们!!
最佳答案
sprintf() 和 puts() 期望指向字符的指针,k 是指向无符号整数数组的指针。适当的转换应该可以解决您的问题
关于c - 如何将格式化数据存储到 C 中的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29172272/