比如"12.34"这种字符串如何判断是数字?
光用atof,当输入非数字返回的是0,没法判断了

解决方案 »

  1.   

    那你可以自己写一个函数,从string中逐个取出字符,判断是否是0-9的数字或者是小数点号,如果出现不匹配的,就不是合法数字了。
      

  2.   

    CString str = "123.456";
    char c;
    for(int i=0;i<str.GetLength();i++)
    {
       c = str.GetAt(i);
       if(c<48 || c>57 || c!=46)
       {
          AfxMessageBox("非法数字!");
          break;
       }
    }
      

  3.   

    bohut(伯虎)兄的好像不能判断字符之间的逻辑关系哈?
      

  4.   

    sorry,:)
    CString str = "123.4561a";
    char c;
    for(int i=0;i<str.GetLength();i++)
    {
    c = str.GetAt(i);
    if((c<48 || c>57) &&  c!=46)
    {
    AfxMessageBox("非法数字!");
    break;
    }
    }
      

  5.   

    那如果是12..34 这样的肯定就判断不出来了,有没有除了词法分析挨个扫外更简单的方法哦
    isdigit只能检查单个字符的吧
      

  6.   

    遍历字符串每一位,再使用IsDigit