C语言如何将字符串转成十六进制数
时间: 2023-12-12 07:03:33 浏览: 523
C语言中可以使用 `sscanf()` 函数将一个字符串转换为十六进制数。具体方法如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char text[] = "hello world";
char hex_text[100];
int i, len;
len = strlen(text);
for (i = 0; i < len; i++) {
sprintf(hex_text + i * 2, "%02x", text[i]);
}
printf("%s\n", hex_text);
return 0;
}
```
其中,`text` 是待转换的字符串,`len` 是字符串的长度,`sprintf()` 函数将每个字符转换为两位十六进制数,并将结果存储在 `hex_text` 数组中。
输出结果为:
```
68656c6c6f20776f726c64
```
注意,输出结果中的每两个字符表示一个字节的十六进制数。如果你需要将结果存储为字节数组,可以使用 `sscanf()` 函数:
```c
#include <stdio.h>
#include <string.h>
int main() {
char text[] = "hello world";
unsigned char hex_text[100];
int i, len;
len = strlen(text);
for (i = 0; i < len; i++) {
sscanf(text + i, "%02x", &hex_text[i]);
}
for (i = 0; i < len / 2; i++) {
printf("%02x ", hex_text[i]);
}
printf("\n");
return 0;
}
```
其中,`hex_text` 是存储十六进制数的字节数组,`sscanf()` 函数将每两个字符转换为一个字节的十六进制数,并将结果存储在 `hex_text` 数组中。
输出结果为:
```
68 65 6c 6c 6f 20 77 6f 72 6c 64
```
注意,输出结果中的每个数值表示一个字节的十六进制数。
阅读全文