c - 如何将格式化数据存储到 C 中的数组?

标签 c arrays printf

我有这段代码将数组 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/

相关文章:

c - 将文件中的空格分隔字符串读取到单个变量中

C星号打印金字塔

java - 使用 printf 处理多种格式

c++ - 包含字符串和整数的文件输入

java - 为什么我要为String数组获取java.lang.NullPointerException?

c - C 的 printf 中的数字分组

sprintf 导致字符数组溢出

无法在 VS 2019 上以 Release模式为 SDL 库构建解决方案

c - 将数据写入 fork 管道不起作用

python - 为什么在使用 NumPy 进行楼层划分时会显示数据类型(即使它是 native 数据类型)?