C语言将一串字符串拼接为2位16进制数组
时间: 2024-02-01 07:16:40 浏览: 199
字符串转16进制数值
4星 · 用户满意度95%
假设你要将字符串 "Hello World" 转换成对应的16进制数组,可以按照以下步骤进行:
1. 将字符串转换成对应的 ASCII 码值,存储到一个整数数组中。
```c
char str[] = "Hello World";
int len = strlen(str);
int ascii[len]; // 存储对应的 ASCII 码值
for (int i = 0; i < len; i++) {
ascii[i] = (int)str[i];
}
```
2. 将每个 ASCII 码值转换成对应的16进制数,存储到一个新的数组中。
```c
int hex[len * 2]; // 存储对应的16进制数
for (int i = 0; i < len; i++) {
hex[i * 2] = (ascii[i] >> 4) & 0x0F; // 高4位为一个16进制数
hex[i * 2 + 1] = ascii[i] & 0x0F; // 低4位为一个16进制数
}
```
3. 打印出对应的16进制数数组。
```c
for (int i = 0; i < len * 2; i++) {
printf("%02X", hex[i]);
}
```
完整代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello World";
int len = strlen(str);
int ascii[len]; // 存储对应的 ASCII 码值
for (int i = 0; i < len; i++) {
ascii[i] = (int)str[i];
}
int hex[len * 2]; // 存储对应的16进制数
for (int i = 0; i < len; i++) {
hex[i * 2] = (ascii[i] >> 4) & 0x0F; // 高4位为一个16进制数
hex[i * 2 + 1] = ascii[i] & 0x0F; // 低4位为一个16进制数
}
for (int i = 0; i < len * 2; i++) {
printf("%02X", hex[i]);
}
return 0;
}
```
阅读全文