C语言 函数实现hex转char并验证
时间: 2023-05-21 21:02:40 浏览: 577
hex2ascii_Hex2Char_十六进制转字符串_
以下是 C 语言函数实现 hex 转 char 并验证的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int hex_to_char(const char *hex, char *out) {
size_t len = strlen(hex);
if (len % 2 != 0) {
return -1;
}
for (size_t i = 0; i < len; i += 2) {
char *endptr;
long val = strtol(hex + i, &endptr, 16);
if (*endptr != '\0') {
return -1;
}
*out++ = (char) val;
}
*out = '\0';
return 0;
}
int main() {
const char *hex = "48656c6c6f20576f726c64";
char buf[100];
if (hex_to_char(hex, buf) == 0) {
printf("Hex: %s\n", hex);
printf("Char: %s\n", buf);
} else {
printf("Invalid hex string\n");
}
return 0;
}
```
这个函数可以将一个十六进制字符串转换为对应的 ASCII 字符串,并且会验证输入的字符串是否是有效的十六进制字符串。如果输入的字符串不是有效的十六进制字符串,函数会返回 -1。
阅读全文