多语言展示
当前在线:213今日阅读:2今日分享:31

c语言如何获得输入法输入的中文编码

计算机中输入的中文汉字一般是以2字节来存储,要用C语言获得输入的中文汉字编码,可以参考以下内容。
一、用的基本函数
1

首先输入中文,建议使用wscanf函数,这是C语言提供的宽字符版的输入函数。

2

其次,输出中文编码可以使用wprintf函数,这是C语言提供的宽字符版的输出函数,通过输出输出格式来看到中文的编码,一般用16进制格式输出字符的编码,因为两个16进制数是一个字节,容易识别,换句话说一个中文汉字要4个16进制数。

3

再次,在c语言程序中存储中文汉字,建议使用wchar宽字符数据类型定义的变量或者数组,我使用gcc作为测试环境,需要添加头文件

4

最后,需要借助于setlocale函数来设置一下环境,这个需要头文件locale.h

二、实例编码
1

首先定义一个wchar_t类型的数组用于存储输入的中文,同时定义两个变量inx、size,size用于保存实际输入的汉字中文数,inx用于循环控制打印每一个中文汉字的16进制编码。

2

然后,输入中文汉字,需要调用wscanf函数,注意不能使用%s作为字符串输入,而要使用%ls。

3

接下来使用wcslen()来统计中文汉字的个数,这个是strlen()的宽字符版本,名称不一样,使用是一样的。

4

最后通过一个for循环,输出所有汉字的编码即可。

三、编译及运行程序效果
1

全部的程序源码如下:#include #include #include int main(){    setlocale(LC_ALL,'zh_CN.UTF-8');        wchar_t cn[256];    int inx,size;    //输入中文汉字    wprintf(L'请输入中文汉字:\n');    wscanf(L'%ls',cn);    //计算汉字数并循环输出16进制数    size = wcslen(cn);    for (inx=0; inx!=size; ++inx)        wprintf(L'%x\t',cn[inx]);    wprintf(L'\n');    return 0;}

2

接下来执行如下命令将上面的源码文件t.c,编译生成可执行程序t。gcc -o t t.c

推荐信息