不纠结了,基础慢慢积累吧。总之先了解,两个%c%c能输出一个占两个字节的字符
程序代码:
/*
* 程序说明了:
* 连续输出两个字符,如果两个字符的值刚好对应一个宽字符编码,
* 将输出这个宽字符。
*/
#include <stdio.h>
int main(void)
{
char * str1 = "华";
printf("%c %c\n", str1[0], str1[1]);
printf("%c%c\n", str1[0], str1[1]);
printf("%d %d\n", str1[0], str1[1]);
putchar(str1[0]);
putchar(str1[1]);
putchar('\n');
putchar('\n');
char str2[5] = {-69,-86, -69, -86, 70};
//-69对应“华”高字节编码,-86对应华低字节编码,连续输出刚输出一个“华”字符
printf("%c%c\n", str2[0], str2[1]);
printf("%c%c\n", str2[0], str2[3]);
//-69对应“籉”高字节编码,-86对应华低字节编码,连续输出刚输出一个“籉”字符
printf("%c%c\n", str2[0], str2[4]);
printf("%c%c%c%c\n", str2[0], str2[1], str2[2], str2[3]);
//也许没有字符集使用3个字节的方式,所以对3个连续的字符输出不会显示某种字符集下的一个字符。
//或者有但是C语言不支持???
//printf("%c%c%c\n", str2[0], str2[1], str2[2]);
//printf("%c%c%c\n", str2[2], str2[3], str2[4]);
return 0;
}