在C语言中,可以使用以下代码将一个字符串转换为16进制数组:

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

void stringToHexArray(const char* str, unsigned char* hexArray, int maxLen) {
    int len = strlen(str);
    int arrayLen = 0;

    for (int i = 0; i < len && arrayLen < maxLen; i += 2) {
        sscanf(&str[i], "%2hhx", &hexArray[arrayLen]);
        arrayLen++;
    }
}

int main() {
    const char* str = "48656C6C6F20576F726C64";
    unsigned char hexArray[100];
    
    stringToHexArray(str, hexArray, sizeof(hexArray));

    for (int i = 0; i < strlen(str) / 2; i++) {
        printf("%02X ", hexArray[i]);
    }

    return 0;
}

在上述代码中,stringToHexArray 函数接受一个字符串 str,一个用于存储转换后的16进制数组的数组 hexArray,以及最大长度 maxLen

函数首先获取字符串的长度 len,然后在循环中每次处理两个字符(每个字符表示一个16进制数),使用 sscanf 函数将字符转换为对应的16进制数,并存储到 hexArray 中。同时,使用 arrayLen 变量来记录实际转换后的数组长度。

main 函数中,我们定义了一个字符串 str,并声明一个足够大的 hexArray 数组。然后调用 stringToHexArray 函数将字符串转换为16进制数组,并使用循环遍历打印数组中的元素。

以上代码输出结果为:

48 65 6C 6C 6F 20 57 6F 72 6C 64

其中每两个数字表示一个16进制数

C语音如何把字符串转化成16进制数组

原文地址: https://www.cveoy.top/t/topic/iw8m 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录