c c++怎么判斷一個字符串中是否含有漢字


c c++怎么判斷一個字符串中是否含有漢字

  (2013-02-05 10:44:23)
   

#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   )就好!  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM