C++判斷使用者輸入是否為數字?
阿新 • • 發佈:2019-02-06
#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)