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;
}

代码解释

  1. hex_string_to_char_array 函数

    该函数将十六进制字符串转换为字符数组。它使用 strtol 函数将每个两个字符的十六进制字符串转换为整型,并将其强制转换为字符类型。

  2. char_array_to_hex_string 函数

    该函数将字符数组转换为十六进制字符串。它使用 sprintf 函数将每个字符转换为两位十六进制数。

  3. main 函数

    main 函数首先定义一个十六进制字符串 hex_str,然后调用 hex_string_to_char_array 函数将其转换为字符数组 char_array,最后调用 char_array_to_hex_string 函数将 char_array 转换回十六进制字符串 hex_str2

总结

本文介绍了使用 C 语言实现十六进制字符串与字符数组的相互转换方法。通过理解代码和解释,你可以轻松地将十六进制字符串转换为字符数组,并将字符数组转换回十六进制字符串。

C语言:将十六进制字符串与字符数组相互转换

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

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