C语言字符串转16进制数组 - 详细代码解析与示例
在C语言中,可以使用以下代码将一个字符串转换为16进制数组:\n\nc\n#include <stdio.h>\n#include <string.h>\n\nvoid stringToHexArray(const char* str, unsigned char* hexArray, int maxLen) {\n int len = strlen(str);\n int arrayLen = 0;\n\n for (int i = 0; i < len && arrayLen < maxLen; i += 2) {\n sscanf(&str[i], "%2hhx", &hexArray[arrayLen]);\n arrayLen++;\n }\n}\n\nint main() {\n const char* str = "48656C6C6F20576F726C64";\n unsigned char hexArray[100];\n \n stringToHexArray(str, hexArray, sizeof(hexArray));\n\n for (int i = 0; i < strlen(str) / 2; i++) {\n printf("%02X ", hexArray[i]);\n }\n\n return 0;\n}\n\n\n在上述代码中,stringToHexArray 函数接受一个字符串 str,一个用于存储转换后的16进制数组的数组 hexArray,以及最大长度 maxLen。\n\n函数首先获取字符串的长度 len,然后在循环中每次处理两个字符(每个字符表示一个16进制数),使用 sscanf 函数将字符转换为对应的16进制数,并存储到 hexArray 中。同时,使用 arrayLen 变量来记录实际转换后的数组长度。\n\n在 main 函数中,我们定义了一个字符串 str,并声明一个足够大的 hexArray 数组。然后调用 stringToHexArray 函数将字符串转换为16进制数组,并使用循环遍历打印数组中的元素。\n\n以上代码输出结果为:\n\n\n48 65 6C 6C 6F 20 57 6F 72 6C 64\n\n\n其中每两个数字表示一个16进制数。
原文地址: https://www.cveoy.top/t/topic/qetn 著作权归作者所有。请勿转载和采集!