#include
#include
int main()
{
char sztext[] = " 是ciw.";
char c = 0;
char szchinese[3] = {0};
int i = 0, nlen = strlen(sztext);
for(; i < nlen; i++)
{
if( sztext[i] >= 0 && sztext[i] <= 127 ) //不是全角字符?
c = sztext[i], printf("%c\n", c);
else //是全角字符
szchinese[0] = sztext[i], szchinese[1] = sztext[i + 1], printf("%s\n", szchinese), i++; //中文是2個字節,所以i++
}
return 0;
}
#include
int IncludeChinese(char *str)//返回0:無中文,返回1:有中文
{
char c;
while(1)
{
c=*str++;
if (c==0) break; //如果到字符串尾則說明該字符串沒有中文字符
if (c&0x80) //如果字符高位為1且下一字符高位也是1則有中文字符
if (*str & 0x80) return 1;
}
return 0;
}
首先,漢字是雙字節的編碼格式!
漢字的第一字節:是從0xB0 開始編碼
漢字的第二字節:是從0xA1 開始編碼
有了以上的了解,就不難識別出是中文,還是其他的編碼!
程序中只需要判斷( 第一字節>=0xB0 && 第二字節>=0xA1 )就好!