C语言中把字符串转换成16进制
时间: 2023-11-26 13:04:38 浏览: 31
在C语言中,可以使用循环遍历字符串的每个字符,然后将其转换为16进制表示的字符串。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char string[] = "Hello World";
int len = strlen(string);
char hex_string[len*2+1]; // 16进制字符串最大长度是原字符串长度的两倍
int i;
for (i = 0; i < len; i++) {
sprintf(hex_string+i*2, "%02X", string[i]); // %02X表示输出2位16进制数,不足时前面补0
}
hex_string[len*2] = '\0'; // 16进制字符串最后要加上'\0'表示字符串结束
printf("%s\n", hex_string);
return 0;
}
```
输出结果为:
```
48656C6C6F20576F726C64
```
其中,`sprintf()`函数将一个字符转换为16进制字符串,`%02X`表示输出2位16进制数,不足时前面补0。最后将每个字符的16进制字符串连接起来即可。
相关问题
C语言怎么把字符串转换成16进制数
在C语言中,可以使用 `sscanf` 函数将字符串转换为 16 进制数。例如:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *s = "hello";
int hex_num;
sscanf(s, "%x", &hex_num);
printf("%x\n", hex_num);
return 0;
}
```
输出结果为:
```
68656c6c
```
其中,`sscanf(s, "%x", &hex_num)` 将字符串 `s` 解析为一个 16 进制数,并将其存储在变量 `hex_num` 中。最后,使用 `%x` 格式化符号将 `hex_num` 输出为 16 进制数。需要注意的是,这种方法只能将字符串转换为整型的 16 进制数,如果要转换为浮点型的 16 进制数,可以使用 `strtod` 函数。
C语言 字符串转换成16进制
在 C 语言中,字符串转换成16进制可以使用 `sprintf` 函数。以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char string[] = "Hello World";
unsigned char hex_string[2 * strlen(string) + 1];
int i;
for (i = 0; i < strlen(string); i++) {
sprintf((char*)(hex_string + 2 * i), "%02x", string[i]);
}
printf("%s\n", hex_string);
return 0;
}
```
其中,`sprintf` 函数把每个字符转换成两个十六进制数字,存储在 `hex_string` 数组中,最后输出。注意,在 C 语言中,字符串以 '\0' 结尾,因此 `hex_string` 数组大小为 `2 * strlen(string) + 1`。