如何判断BSTR字符串是由字母和数字组成,谢谢

解决方案 »

  1.   

    const wchar_t wszChars[] = _T("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");wchar_t *pWideChar = (wchar_t*)YourBSTR;
    UINT nLen = ::SysStringLen(YourBSTR);
    BOOL bFound = FALSE;for (UINT nPos = 0; nPos < nLen; nPos++) {
        for (UINT nIndex = 0; nIndex < 62; nIndex ++) {
            if (::memcmp(pWideChar + nPos, wszChars + nIndex, 2) != 0) {
                bFound = TRUE;
                break;
            }
        }
    }
      

  2.   

    ::WideCharToMultiByte() 方法将BSTR转换为LPSTR或CString后 再用普通方法判断!:)
      

  3.   

    谢谢各位,我已经解决此问题了
    long Len=wcslen(bstrString)
    for(long i=0;i<len;i++)
    if (!(bstrString[i]>='0' && bstrString[i]<='9'))
    {
    ...........
    }
    字母同理判断
    现在我想问谁知道BSTR如何截取字符串,比如说我想截取前十个字符,谢谢赐教!
      

  4.   

    BSTR aaa;
    _bstr_t bbb(aaa,false);
    CString str = LPCTSTR(bbb);
    CString strResult = str.Left(10);
      

  5.   

    1:在不能使用CString的情况下(在写COM时),如何获取到中间10个字符?
    2:如何判断里面的中文?
    我碰到上面两个问题,很困惑,顺便帖子这里,请指教!谢谢!