我們都知道,字元串中的每個字元都占一個位元組,但是漢字不同,它占兩個位元組。而且第一個位元組的高位為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;//不存在漢字
}
}
測試結果:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL4YjMnlWMZRXU3tUQBFEUPlDWDJnTtp1Yxw0bpt0dvwFR08CXGdzLcBDMN9CXyAzcml3dvwVbvNmLvR3YxUjL1M3Lc9CX6MHc0RHaiojIsJye.png)
轉載于:https://blog.51cto.com/10810429/1766630