1. 程式人生 > >C++判斷使用者輸入是否為數字?

C++判斷使用者輸入是否為數字?

#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
 bool is_number(string str)
  {
     if(str.c_str()[0]!=45)
     {
        for(int i = 0; i < str.length(); i++)
        {
           if( str.c_str()[i] < '0' || str.c_str()[i] > '9' )
           { return false;}
         }
        return true;
     }
     else
     {
       for(int i = 1; i < str.length(); i++)
        {
           if( str.c_str()[i] < '0' || str.c_str()[i] > '9' )
           { return false;}
        }
       return true;
     }
 }
void main()
{ int a=0;
  const char *s;
  cout<<"請輸入資料a:";
  string str;
  cin>>str;
  if(is_number(str))
  {
    cout<<"你輸入的是數字!"<<endl;
    s=str.c_str();
    a=atoi(s);
    a=a+1;
    cout<<"a+1="<<a<<endl;
  }
  else cout<<"你輸入的不是數字!";
}

一次性獲取使用者當前輸入(他輸入的可能是1位數也可能是2位數或者字母等)並判斷是否為嚴格意義上的數字,主要是為了區分數字和字母。如果不是數字則返回重輸,如果是,使用該int 型資料做其他操作。

主要思路是採用string類的成員函式c_str()實現。對於成功判斷是數字以後如果要使用該數字可以再呼叫atoi(const char*s)