C语言中一个字符用%c输出,那么一个中文字用什么输出呢?

比如我定义一个字符串:char a[]={“百度一下,你就知道”}
想输出 a[0]与a[6],即输出“百你”, 用printf() 那么定义输出的类型是什么呢?
看错了,a[6]是“就”

首先要明白,在C语言中,汉字的的储存方式,即一个汉字用两个字节储存,在字符串中,如果要将某一汉字输出,应该同时输出和这个汉字有关的字符,采用printf("%c")方式输出~例如
#include"stdio.h"
void main()
{
char a[]="你好";
printf("%c%c%c%c",a[0],a[1],a[2],a[3]);
}
或采取循环输出的方式,如果只输出一个字符,是没有用的,一般运行的结果是无任何显示~
希望你对我的回答满意~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-02
首先你要明白a[0]不是“百”,只是“百”左边一半,一个汉字至少要两个字节(与编码方式有关,大多数情况下是两个字节),要输出“百”至少要:

printf("%c%c",a[0],a[1]);

你试试看,祝你好运。本回答被提问者采纳
第2个回答  推荐于2017-09-23

以字符串格式输出

第3个回答  2012-04-02
%c输出的是ascii码单个字符,中文不能这样输出;在这里每个汉字占两个字节,你需要用%s输出,但是%s需要遇到串结束符才停止,所以你需要把a[]中对应汉字的两个字节拷贝到另外一个数组中,后面再加上一个串结束符号,再用%s输出即可。
第4个回答  2012-04-02
每两个字符输出一个中文
这里 "百"是a[0]a[1] "就"是a[12]a[13]
printf("%c%c%c%c\n",a[0],a[1],a[12],a[13]);