c c++怎么判断一个字符串中是否含有汉字

时间:2022-03-25 05:21:43

#include <stdio.h>
#include <string.h>

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 <stdio.h>

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;
}