以下是一个示例代码,可以将一个字符串中的两个16进制字符看做一个字符,然后再将一个字符拆分成两个字符,最后复原回原字符串:

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

输出结果:

Char array: Hello World
Hex string: 48656c6c6f20576f726c64

这个代码定义了两个函数,hex_string_to_char_arraychar_array_to_hex_string,分别用于将一个16进制字符串转换为一个字符数组,并将一个字符数组转换为16进制字符串。在 main 函数中,首先将一个16进制字符串转换为一个字符数组,然后再将这个字符数组转换为16进制字符串,最后输出结果

c语言将字符串中两个16进制字符看做一个字符使用再将一个字符拆分成两个字符复原回原字符串

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

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