如何在单片机编译器内码中区分中文和西文? 如混合显示中西文函数: myPrint("电子21IC网站"); 自定义字库点阵中文和西文是分开的。所以中文(“电子网站”)和西本(“21IC”)是要分开处理的。 中文和西文在C编译器中的区别(非Unicode的,双字节字符集)主要有如下两点: 1.中文字符由2个字节组成,西文由一个字节组成。 2.中文的两个字节的最高位都为1,即二进制的1*******(*指可是高电平,也可是低电平)。 根据以上两点,设计程序:
//示意程序 void myPrint(unsigned char *str)//中西文混合显示 { while(*str) { if(*str & 0x80) //高位为1说明是汉字 { //调用显示中文字程序 printDBCS(str); str++; //汉字就跳过两个字节 str++; } else /*不是汉字,而是西文*/ { //调用显示西文字程序 printASCII(str); str++; //西文就跳过一个字节 } } } //调用方法: myPrint("电子21IC网站");
|