如何校验输入的字符串是否是整形和日期型?

解决方案 »

  1.   

    找区别啊
    整型无非就是一个数15
    日期型如:1985-11-28, 2001/01/01
    那么日期型一定带有非数值的符号就是了
    之后可以通过asc码判断,只要字符串中出现<'0'或>'9'的就认为他是日期型就可以了(前题是你进来的字符串只有两种可能整型or日期型)
    如果日期开没有其它符号的话如19851128,那就通过位数,日期开固定了7位,(前题是你的整型数得是小于7位的那种的)否则偶不知道怎么判断了
      

  2.   

    判断整型使用  isdigit, 逐字符判断。判断是否日期可以用正则表达式结合scanf
      

  3.   

    bool IsDate( LPCTSTR pszText )
    {
      ASSERT_VALID_STRING( pszText );
      
      // format should be 99/99/9999.
      
      if( lstrlen( pszText ) != 10 )
        return false;
      
      return _istdigit(pszText[0])
        && _istdigit(pszText[1])
        && pszText[2]==_T('-')
        && _istdigit( pszText[ 3 ] )
        && _istdigit( pszText[ 4 ] )
        && pszText[5]==_T('-')
        && _istdigit( pszText[ 6 ] )
        && _istdigit( pszText[ 7 ] )
        && _istdigit( pszText[ 8 ] )
        && _istdigit( pszText[ 9 ] );
    }
      

  4.   


    COleDateTime::ParseDateTime可以检验给定的字符串是否为有效的日期。