c - ASCII 字符串到十六进制整数的转换

标签 c

我想将 16 字节的 ascii 字符串转换为 16 字节的十六进制整数。请帮忙。这是我的代码:

uint stringToByteArray(char *str,uint **array)
{

    uint i, len=strlen(str) >> 1;

    *array=(uint *)malloc(len*sizeof(uint));

    //Conversion of str (string) into *array (hexadecimal)

    return len;

}

最佳答案

如果您正在寻找以十六进制形式打印整数,这可能会有所帮助:

#include <stdio.h>

int main() {
    /* define ASCII string */
    /* note that char is an integer number type */
    char s[] = "Hello World";
    /* iterate buffer */
    char *p;
    for (p = s; p != s+sizeof(s); p++) {
        /* print each integer in its hex representation */
        printf("%02X", (unsigned char)(*p));
    }
    printf("\n");
    return 0;
}

如果您只想将 char 数组转换为 1 字节整数数组,那么您就已经完成了。 char 已经是整数类型。您可以使用已有的缓冲区,或使用 malloc/memcpy 将数据复制到新缓冲区。

您可能想查看 stdint.h 中定义的显式宽度整数类型,例如,uint8_t 表示一字节无符号整数。

关于c - ASCII 字符串到十六进制整数的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17263395/

相关文章:

c - 使用 ssh 和 libssh2 lib 发送命令

c - 查询路由表条目到达指定目的地的API

c - 在c中使用pipe()时,我的文件描述符神秘地设置为零

c - 将混合数据读入 C 结构

c - 使用 const 外部值作为非常量外部值是否安全?

c - C 中的 "HANDLE"关键字

php - 为什么 phpseclib 生成不兼容的证书?

C语言如何向二维数组中插入一个值

c - POSIX 多线程和信号处理

c++ - 在 C 中定义整数解析为无符号字符,或在数学运算的情况下产生意外行为