字符串 "Hello World" 转换为16进制字符串,c语言例子
时间: 2024-01-12 08:05:34 浏览: 43
以下是一个C语言示例,将字符串 "Hello World" 转换为16进制字符串:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello World";
int len = strlen(str);
char hex[2 * len + 1];
int i;
for (i = 0; i < len; i++) {
sprintf(hex + 2 * i, "%02X", str[i]);
}
hex[2 * len] = '\0';
printf("Original string: %s\n", str);
printf("Hex string: %s\n", hex);
return 0;
}
```
输出:
```
Original string: Hello World
Hex string: 48656C6C6F20576F726C64
```
在此示例中,我们首先计算字符串的长度,并将其存储在变量 `len` 中。然后,我们创建一个新的字符数组 `hex`,它的长度是原始字符串长度的两倍(每个字符需要两个十六进制数字)再加上一个字符用于字符串终止符。在循环中,我们使用 `sprintf` 将每个字符转换为两个十六进制数字,并将其存储在 `hex` 数组中。最后,我们在 `hex` 数组的末尾添加一个字符串终止符,并将其打印到控制台上。
相关问题
C语言将字符串原样转换为16进制数
您好,以下是将字符串原样转换为16进制数的C语言代码:
```
#include <stdio.h>
#include <string.h>
int main(){
char str[] = "Hello, world!";
int len = strlen(str);
printf("The original string is: %s\n", str);
printf("The hex string is: ");
for(int i=0; i<len; i++){
printf("%02x", (unsigned char)str[i]);
}
printf("\n");
return 0;
}
```
该程序将输出字符串 "Hello, world!" 的16进制表示形式。
请问还有什么问题可以帮您解答吗?
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`。