将十六进制字符串数组转换为十六进制数组

用户名

我在努力使字符串在处理过程中被理解为十六进制字符串。我正在编写一个小程序,在此程序中我将输入的ascii文本作为十六进制字符串。

那就是我读:

char *str = "313233";

实际上是0x31、0x32和0x33,实际上是字符串“ 123”。

我需要一个无符号字符数组,如下所示:

unsigned char val[] = {0x31, 0x32, 0x33};

当我尝试sscanf或sprintf时,他们期望整数数组成为目标指针:(

也就是说,类似:

sprintf(str, "%2x", &val[0]);

这该怎么做?也许这是非常琐碎的,但我莫名其妙地感到困惑。

谢谢。

大卫·拉涅里(David Ranieri)

sscanf 将达到目的:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void)
{
    char *str = "313233";
    size_t i, n = strlen(str) / 2;
    unsigned char *v;

    v = malloc(n);
    if (v == NULL) {
        perror("malloc");
        exit(EXIT_FAILURE);
    }
    for (i = 0; i < n; i++)
        sscanf(str + (i * 2), "%2hhx", &v[i]);
    for (i = 0; i < n; i++)
        printf("0x%2x\n", v[i]);
    free(v);
    return 0;   
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将十六进制字符串转换为十六进制数字

来自分类Dev

Java:将十六进制编码的字符串转换为十六进制字节

来自分类Dev

将十六进制字符串转换为十六进制整数

来自分类Dev

将Java字符串十六进制数转换为int十六进制数

来自分类Dev

如何将十六进制编码的字符串转换为十六进制整数

来自分类Dev

将十六进制字符串值转换为十六进制数字

来自分类Dev

如何将十六进制编码的字符串转换为十六进制整数

来自分类Dev

如何将int数组转换为十六进制字符串

来自分类Dev

将十六进制字符串转换为字节数组

来自分类Dev

将整数数组转换为十六进制字符串

来自分类Dev

iOS:将字符串转换为十六进制数组

来自分类Dev

将RGB数字数组转换为十六进制颜色字符串

来自分类Dev

将ASCII十六进制字符串转换为字节数组

来自分类Dev

将十六进制字符串转换为字节数组

来自分类Dev

如何将int数组转换为十六进制字符串

来自分类Dev

将十六进制字符串转换为字节数组

来自分类Dev

将字符串转换为十六进制数组数据

来自分类Dev

将字符串转换为十六进制字符

来自分类Dev

将字符串转换为十六进制字符

来自分类Dev

将十六进制字符串转换为整数

来自分类Dev

将十六进制字符串转换为字节[]

来自分类Dev

将十六进制字符串转换为整数

来自分类Dev

将十六进制转换为字符串

来自分类Dev

将十六进制字符串转换为字节[]

来自分类Dev

将十六进制数字转换为字符串

来自分类Dev

将字符串变量转换为十六进制

来自分类Dev

将十六进制字符串转换为图像

来自分类Dev

将int转换为十六进制字符串

来自分类Dev

Python:将十六进制转换为字符串

Related 相关文章

热门标签

归档