中文字 的第一个字节 > 0xa0

解决方案 »

  1.   

    1、比较。//......
      char str1="我是中国人";
      char str2="是";
      for (i=0;i<strlen(str1);i++,i++)
        {
           if (str1[i] != str2[0]) break;
           if (str1[i+1] == str2[1]) char_found=1;
        }
     // .......注意汉字占2字节,不要使指针指向一个汉字的两个字节的中间。2、查表
       由于你只需要第一个字符,表的大小为65536字节,汉字的编码就是表的索引:  char py;
      char str="我";
      unsigned int id;
      id=str[0]+str[1]*256;
      py=py_table[id];
      

  2.   

    py_table 的表可能不好找,你可以自己生成。记得 UCDOS 可以由汉字得到 其拼音,虽然现在UCDOS可能已经用得很少,但这个表你可以找来用。 按照他们的方法获取拼音,取第一个字母就是了。
      

  3.   

    ....
          if (str1[i] != str2[0]) break;
          if (str1[i+1] == str2[1]) char_found=1;    
    ===========================================应当改为:
    ......
          if (str1[i] != str2[0]) continue;
          if (str1[i+1] == str2[1]) 
             {
              char_found=1;
              break;
             }
    .......
        
          
      

  4.   

    // 程序有bug,或许改成下面的可以
    .......
    for (i=0;i<strlen(str1)-1;i++,i++)
        {
          if (str1[i] != str2[0]) continue;
          if (str1[i+1] == str2[1]) 
              {
               char_found=1;
               break;
              }
        }