C语言:将十六进制字符串与字符数组相互转换
C语言:将十六进制字符串与字符数组相互转换
本文将介绍如何在 C 语言中将十六进制字符串与字符数组相互转换。
示例代码
以下代码演示了如何将一个十六进制字符串中的两个十六进制字符看做一个字符,并将其转换为字符数组,然后再将字符数组转换回十六进制字符串。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void hex_string_to_char_array(char* hex_str, char* char_array) {
int len = strlen(hex_str);
int i, j;
for (i = 0, j = 0; i < len; i += 2, j++) {
char_array[j] = (char) strtol(&hex_str[i], NULL, 16);
}
char_array[j] = '\0';
}
void char_array_to_hex_string(char* char_array, char* hex_str) {
int len = strlen(char_array);
int i, j;
for (i = 0, j = 0; i < len; i++, j += 2) {
sprintf(&hex_str[j], "%02x", char_array[i]);
}
hex_str[j] = '\0';
}
int main() {
char hex_str[] = "48656c6c6f20576f726c64";
char char_array[100], hex_str2[100];
hex_string_to_char_array(hex_str, char_array);
printf("Char array: %s\n", char_array);
char_array_to_hex_string(char_array, hex_str2);
printf("Hex string: %s\n", hex_str2);
return 0;
}
代码解释
-
hex_string_to_char_array函数该函数将十六进制字符串转换为字符数组。它使用
strtol函数将每个两个字符的十六进制字符串转换为整型,并将其强制转换为字符类型。 -
char_array_to_hex_string函数该函数将字符数组转换为十六进制字符串。它使用
sprintf函数将每个字符转换为两位十六进制数。 -
main函数main函数首先定义一个十六进制字符串hex_str,然后调用hex_string_to_char_array函数将其转换为字符数组char_array,最后调用char_array_to_hex_string函数将char_array转换回十六进制字符串hex_str2。
总结
本文介绍了使用 C 语言实现十六进制字符串与字符数组的相互转换方法。通过理解代码和解释,你可以轻松地将十六进制字符串转换为字符数组,并将字符数组转换回十六进制字符串。
原文地址: https://www.cveoy.top/t/topic/nTmq 著作权归作者所有。请勿转载和采集!