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

又如何打印呢?最好举例说明。。谢谢... 又如何打印呢?最好举例说明。。谢谢 展开
 我来答
百度网友cc21aee
2013-08-16 · TA获得超过2041个赞
知道小有建树答主
回答量:1273
采纳率:100%
帮助的人:1206万
展开全部

用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]);

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

投机士
2015-10-18 · TA获得超过10.5万个赞
知道大有可为答主
回答量:2.5万
采纳率:0%
帮助的人:3861万
展开全部
在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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
3147cqg
2013-08-16 · TA获得超过580个赞
知道小有建树答主
回答量:555
采纳率:37%
帮助的人:249万
展开全部
建议看看汉字的内码和外码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ry_x
2013-08-16 · TA获得超过941个赞
知道小有建树答主
回答量:1095
采纳率:0%
帮助的人:724万
展开全部
用 wchar_t 类型吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式