大哥们,帮小弟写一个text的判断程序,text只能接受数字,其他的都为非法,我想了一晚上都没想出来啊!!!1

解决方案 »

  1.   

    顺序扫描, 每个文本的ascii码都应该在'0'-'9'之间, 并且小数点只能出现1次, 这样不就可以了,吗
      

  2.   

    BOOL TxtOnlyHasNumber(CString* pStr)
    {
    int len = pStr->GetLength();
    for (int i = 0; i < len; i++)
    {
    char c = pStr->GetAt(i);
    if ((int)c < 48 || (int)c > 57)
    return FALSE;
    }
    return TRUE;
    }test:
    void CTextDlg::OnButton1() 
    {
    // TODO: Add your control notification handler code here
    CWnd *pText = GetDlgItem(IDC_EDIT1);
    CString str;
    pText->GetWindowText(str);
    if (!TxtOnlyHasNumber(&str))
    {
    AfxMessageBox("False");
    }
    else
    {
    AfxMessageBox("True");
    }
    }
      

  3.   

    你是指判断text字符串内的字符是不是数字吗,这还不容易?
    如果你要做一个只接收数字的Edit框,那么在Edit框的属性里,大概第二页最左边有两个check框,其中一个就是用来只接收数字的,你一看就知道了,打上钩之后,这个Edit框就只能输入数字了。
      

  4.   

    yangl79(杨) ( ),按你的方法应该就不能输入小数点了吧
      

  5.   

    如果设置Edit控件的Number属性,就不能接受小数点了~~
    做法就只能截取字符串,获取字符长度,做一个循环,逐位判断~~