如何判断一个字符串是否是一个数?????????????????????
谢谢!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    是什么数,int long float...
    就按他的规则写个函数!!
      

  2.   

    用asci码,一位一位的和数字0-9的asci码比较,不对就说明不是
      

  3.   

    if(*str<48 || *str>57){ ... ;};
    判断是否为数字:ISNUMBER();
      

  4.   

    用编译原理里面的知识,有限自动机。自己写一个程序。比如说初始态从0开始,0识别了一个数字后到1,1识别一个数字也都到1,1识别一个小数点到2,2识别一个数字到3,3识别一个数字到3呀。还有一种就是形式,如:.3,这样0状态识别一个小数点到2呀。
    char nBuffer[10];
    m_Edit1.GetWindowText(nBuffer,10);
    int s=0;
    int flag=1;
    for(int i=0;nBuffer[i]!='#';i++)
    {
    switch(s)
    {
    case 0:
    {
    if(nBuffer[i]>='0'&&nBuffer[i]<='9')
    s=1;
    else
    {
    if(nBuffer[i]=='.')
    s=2;
    else flag=0;
    }

    break;
    }
    case 1:
    {
    if(nBuffer[i]>='0'&&nBuffer[i]<='9')
    s=1;
    else
    {
    if(nBuffer[i]=='.')
    {
    s=2;
    }
    else
    flag=0;
    }
    break;
    }
    case 2:
    {
    if(nBuffer[i]>='0'&&nBuffer[i]<='9')
    {
    s=3;
    }
    else
    flag=0;
    break; }
    case 3:
    {
    if(nBuffer[i]>='0'&&nBuffer[i]<='9')
    {
    s=3;
    }
    else
    flag=0;
    break;
    }

    }
    }
    if(flag==1)
    {
    m_Edit2.SetWindowText("legal");

    }
    else
    m_Edit2.SetWindowText("illegal");