我们都知道,字符串中的每个字符都占一个字节,但是汉字不同,它占两个字节。而且第一个字节的高位为1,第二个字节的高位也为1.我们可以利用这个特点来判断字符串中是否含有汉字。


代码实现:

bool IsTrue(char* p)
{
	while(*p)
	{
		if((*p&0x80) && (*(p+1)&0x80))//第一个和第二个字节的高位都为1
		{
			return true;
		}
		else
			p++;
	}
	return false;

}
int main()
{
	char *str = "inhgxj我kjh";
	bool ret = IsTrue(str);
	if(ret == true)
	{
		cout<<"have"<<endl;//存在汉字
	}
	else
	{
		cout<<"no have"<<endl;//不存在汉字
	}	
}

测试结果:

  wKioL1cZmNrCX9OPAAAKwQtY1ig268.png