C语言 字符串转换成16进制
时间: 2023-09-12 16:05:12 浏览: 189
在 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`。
相关问题
C语言中把字符串转换成16进制
在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进制代码
你可以使用sprintf函数将C语言字符串转换为十六进制代码。下面是一个简单的例子:
```c
#include <stdio.h>
void stringToHex(const char* str, char* hex) {
int i = 0;
while (str[i] != '\0') {
sprintf(hex + (i*2), "%02X", str[i]);
i++;
}
}
int main() {
const char* str = "Hello, World!";
char hex[2 * strlen(str) + 1];
stringToHex(str, hex);
printf("Hexadecimal representation: %s\n", hex);
return 0;
}
```
这段代码将输出字符串 "Hello, World!" 的十六进制表示形式。