代码如下 但是统计出来是不正确
比如说:淡淡的123adb,,!  最终结果要得到12才是正确的 跟手机显示的字数一样。
int GetLen(char* content)
{
    int l1;
double l2=0;
l1=strlen(content);
for(int i=0;i<l1;i++)
{
       char a=content[i];
   int a1=(int)content[i];
   if(a=='\0')
   return (int)l2;
   else if(a1>=0x81 && a1<=0xfe)
   {
          l2+=1;
          i++;
   }
   else
   l2+=1; }
return (int)l2;
}

解决方案 »

  1.   

     不太明白你说什么,for(int i=0;i <l1;i++) 这一句起码是错误的.<l1-1
      

  2.   

    这是MFC下的一个例子,计算字符和(不是字节数),自行修改为Win32
    int GetCharCount(CString str);
    {
      int nCount=0;
      if(!str.IsEmpty())
      {
        for(int i=0;i<str.GetLength();i++)
        {
          if(IsDBCSLeadByte(str[i]))
          {
            nCount++;
            i++;
          }
          else
          {
            nCount++;
          }
        }    
      }
      return nCount;
    }
      

  3.   

    老大  我是windows服务程序   只有窗体界面才有cstring类