提供一个思路
ASCII表示的符号范围。
你可以判断
字符串,是否为ASCII码,是忽略。
不是,输出。
上面的变量还应该定义一些操作字符串的指针。
相关有关编码信息参考以下babybubble百度知道:
C/C++支持的是ASCII,不过汉字编码中,GB2312与ASCII是兼容的,所以可以在C中获得汉字的GB2312编码
GB2312是两个字节的,第一字节是高八位,第二字节是低八位,比如下面的程序:
#include<stdio.h>
#include<string.h>
int
main()
{
char
a[5];
strcpy(a,"啊");
printf("%XH
%XH\n",(unsigned
char)a[0],(unsigned
char)a[1]);
return
0;
}
a[0]是“啊”字的高八位,a[1]是低八位,程序运行结果是a[0]=B0
a[1]=A1,用
16进制表示的,所以“啊”字的GB2312编码是B0A1了~
输出时要强制转换成unsigned
char,不然就变成负数了,因为编码是以8位的
无符号整数为单位的
当然也可以转成10进制啦,比如
int
b;
b=(unsigned
char)a[0]*256+(unsigned
char)a[1];
b即为汉字的10进制GB2312编码了