您的位置:首页 > 其它

判断一个字符串里是否有中文字符

2012-07-12 17:26 330 查看
1

//返回0:无中文,返回1:有中文

int IncludeChinese(char *str)

{

char c;

while(1)

{

c=*str++;

if (c==0)

{

break; //如果到字符串尾则说明该字符串没有中文字符

}

if (c&0x80) //如果字符高位为1且下一字符高位也是1则有中文字符

{

if (*str & 0x80)

{

return 1;

}

}

return 0;

}

}

2.

//汉字有两个字符组成:第一个字符的范围-127~-1(包括-127和-1),

//第2个字符范围: <=-1或> =64

// find whether the character str in string src,return true when is,otherwise return false

bool isSearch(const char *src, const char *str)

{

char *ptr = const_cast <char *> (src);

if (!src || !str || *str == '\0 ')

{

return false; // check if the parameter is empty

}

while (*ptr)

{

if ((*ptr <=-1 && *ptr> =-127) && (*(ptr+1) <=-1 || *(ptr+1)> =64))

{

if ((*ptr == *str) && (*(ptr+1) == *(str+1)) && (*(ptr+2) == '\0 '))

{

return true;

}

else

{

ptr += 2;

}

} // this is a chinese character

else

{

if((*ptr == *str) && (*(str+1) == '\0 '))

{

return true;

}

else

{

++ptr;

}

} // this is not a chinese character

}

return false;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: