c语言数组汉字转成两位16进制
时间: 2023-08-23 19:52:56 浏览: 138
汉字转换成16进制
你可以使用以下代码将C语言数组中的汉字转换为两位16进制:
```c
#include <stdio.h>
void convertToHex(char *str, int len, char *hexStr) {
int i;
for (i = 0; i < len; i++) {
sprintf(hexStr + i * 2, "%02X", str[i]);
}
}
int main() {
char str[] = "汉字";
int len = sizeof(str) / sizeof(str[0]);
// 计算转换后的字符串长度
int hexLen = len * 2 + 1;
char hexStr[hexLen];
// 转换为16进制字符串
convertToHex(str, len, hexStr);
printf("16进制字符串: %s\n", hexStr);
return 0;
}
```
在上面的代码中,`convertToHex()` 函数将输入的字符串按字节转换为两位16进制数,并存储在 `hexStr` 数组中。然后,在 `main()` 函数中,我们定义了一个包含汉字的字符数组 `str`,并计算其长度。接下来,我们定义了一个足够长的字符数组 `hexStr` 来存储转换后的16进制字符串。最后,我们调用 `convertToHex()` 函数进行转换,并打印结果。
注意:上述代码仅适用于ASCII编码的字符串。对于其他编码(如UTF-8),可能需要使用其他方法进行转换。
阅读全文