我想对CString变量中存储的字符串做合法性测定,看它是否代表一合法的整数,浮点数,或日期。这在VB中很容易,如可调用IsDate()函数。在VC++中也有类似的函数吗?还是必须自己编?请指教!

解决方案 »

  1.   

    很简单的方法一个:
    atoi()  atof()转化一下,如果能捕捉到异常就不是,如果没有异常就是了
      

  2.   

    自己写把:判断浮点型:
    BOOL SimpleFloatParse(LPCTSTR lpszText, double& d)
    {
    ASSERT(lpszText != NULL);
    while (*lpszText == ' ' || *lpszText == '\t')
    lpszText++;

    TCHAR chFirst = lpszText[0];
    d = _tcstod(lpszText, (LPTSTR*)&lpszText);
    if (d == 0.0 && chFirst != '0')
    return FALSE;   // could not convert
    while (*lpszText == ' ' || *lpszText == '\t')
    lpszText++;

    if (*lpszText != '\0')
    return FALSE;   // not terminated properly

    return TRUE;
    }