判斷輸入是否合法

2021-07-11 17:44:43 字數 960 閱讀 8824

一、判斷輸入是否為數字

通常使用方法1和3,方法2和4無法保證一定能判斷正確。

1)函式isdigit

表頭檔案

#include

定義函式

int isdigit(char c)

函式說明

檢查引數c是否為阿拉伯數字0到9。

返回值若引數c為阿拉伯數字,則返回true,否則返回null(0)。

2)當使用cin,cout輸入流時

int num;

while(!(cin>>num))

若存在元素小於0或大於9的情況,則表明數字中有其他非數字元素存在,則肯定不是整形!

元素都在0-9之間,若陣列的首位是0且0之後還有其餘的元素如0123,這樣的也不是數字!

可以通過有無小數點來區分整形和浮點型,且要保證小數點只出現一次。

4)通過檢測cin的狀態來表明輸入的是否為數字

int a;

cin >> a;

if(cin.fail())

注:

int a; cin >> a;  //輸入3.5   此時cin.fail()和cin.bad()都為false,a的值為3

char a;cin >> a;//輸入3.5  此時cin.fail()和cin.bad()都為false,a的值是'3'

int a;cin >> a;//輸入c 此時cin.fail()為true,cin處於阻塞狀態,可以判斷出輸入的資料型別錯誤。

只有在變數為整形或浮點型,輸入資料不是整形或者浮點型的時候,才會使得cin處於錯誤狀態;

若反過來變數是字元型別,輸入資料是整形或者浮點型,都不會改變cin的狀態。

而且對於特殊情況:

float a;cin >> a;//輸入3.c  此時cin.fail()和cin.bad()為false 無法判斷出輸入資料錯誤!!!!!!!

判斷輸入的IP位址是否合法

判斷輸入的ip位址是否合法,ip位址的值在0 255之間,先把輸入的ip的位址轉換為乙個字串。define len sizeof xx sizeof xx 0 const char xx const char m int checkipisvalid const char ip char c 4 i...

判斷操作是否合法A

time limit 1 sec memory limit 128 mb submit 44 solved 14 submit status web board 假設以i和o分別表示進棧和出棧操作,棧的初態和終態均為空,進棧和出棧的操作序列可表示為僅由i和o組成的序列。順序棧的定義為 typedef...

Ajax判斷輸入資料是否合法具體流程(後端和前端)

實現使用者在前端註冊介面輸入使用者名稱後台判斷輸入是否合法以及資料庫中是否有存在資料 使用ssm 前端ajax 具體流程滑鼠移入輸入框獲取焦點,呼叫script中的checkusername 函式 使用者名稱 2.進入function函式 根據請求路徑,過濾checkname.do並傳送給check...