字符串 "网络A程B序C员" 在VC下如何知道 他们是 5个汉字,3个字母。不记得用什么函数了。请指教

解决方案 »

  1.   

    _ismbbkana ( ch ) 判断是否是汉字
     _ismbchira( ch)   判断是否是双字节字母
    __isascii(ch) ascii
      

  2.   

    BOOL IsDBCSLeadByte(
      BYTE TestChar   // character to test
    );
      

  3.   

    关键你的字符串是不是DBMS的,如果是Unicode的可能判断不出来吧。
      

  4.   

    LPCTSTR textContent ="网络A程B序C员"能不能写详细点?不会写。
      

  5.   

    还在线上么?
    能帮忙写下这个函数么?帮人家改程序,VC不熟悉 int  fun(LPCTSTR textContent )
    {
    int nLen=0;
    /////
    ///////return nLen;
    }
      

  6.   

    const char* a = "网络A程B序C员"
    int I = 1;
    char* pnext = charnext(a);
    while(pNext != a)
    {
     a = pNext;
     pNext = CharNext(pNext);
     I++
    }printf(所有字数:I);另外,要判断是否是汉字还是字母,直接判断下一个字符和前一个字符之间的占位大小,如果为
    1 则肯定是字符,如果是2,则肯定是字
      

  7.   

    还在线上么?
    能帮忙写下这个函数么?帮人家改程序,VC不熟悉void fun(LPCTSTR textContent )
    {
    int nHanzi=0;
    int nZimu=0;
    /////
    ///////// 得到nHanzi
    // 得到nZimu
    }问题是要分别得到字母是几个,汉字是几个
    我前面那个写错了。
    谢谢了。能在我这个函数结构里面直接填写么?楼上写的没看明白
      

  8.   

    void fun(LPCTSTR textContent )
    {
    int nHanzi=0;
    int nZimu=0;int i=0;
     while(textContent[i])
      {
          if(IsDBCSLeadByte(textContent[i]))
          {
              nHanzi++;
              i+=2;
           }else{
              nZimu++;
              i++;
           }
       }
    // 得到nHanzi
    // 得到nZimu
    }