c语言如何使用二维数组存储中文?

又如何打印呢?最好举例说明。。谢谢

用char就可以储存了

#include<stdio.h>
int main()
{
char a[2][10]={"百度一下","你就知道"};
int i;
for(i=0;i<8;i++)
printf("%c",a[0][i]);
printf("\n");
for(i=0;i<2;i++)
printf("%c",a[0][i]);
printf("\n");
for(i=2;i<4;i++)
printf("%c",a[0][i]);
printf("\n");
printf("%s",a[1]);
return 0;
}

 你应该能看懂,12864就是类似这样输出的,电脑也一样

追问

代码后加上printf("%c",a[0][1]);会打印乱码

  for(i=0;i<8;i++)
   printf("%c",a[0][i]);

这个为什么不会输出a[0][1];a[0][3]这些乱码呢?
  

追答

字库中一个汉字是占用两个char的,你只输出一个,字库中没有这个字当然乱码咯

for(i=0;i<2;i++)
        printf("%c",a[0][i]);

就像句话就只输出了一个“百”字,我程序已经写这么明了,你还是没仔细看

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-18
在C语言中存储中文名字,需要使用wchar_t类型来定义数组。用wprintf函数输出,通过setlocal设置本地环境。示例如下:#include <stdio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "chs");
wchar_t wc[] = L"李磊和韩美美";
wprintf(L"%s\n",wc);
return
第2个回答  2013-08-16
建议看看汉字的内码和外码。
第3个回答  2013-08-16
用 wchar_t 类型吧
相似回答