C++判斷輸入是否為double


C++判斷輸入是否為double

之前寫過了Python如何判斷輸入字符串是否為數字,但是Python是弱類型語言,相比之下C++這種強類型語言判定難度更大。

Python判斷輸入字符串是否為數字的方法

例如,我要把不斷輸入的字符串中數字都轉為double類型,別的都保存為字符串。那么我接收輸入的數據類型只能為string

C++和Python一樣提供了isdigit()的方法,但是isdigit()只能判斷一個字符,且只能一位一位判斷,也就是說只能判斷一個字符是不是0~9之間的整型數。連負數都無法判斷。

好在C++11在string類中,提供了stoi, stod, stof, stol, stoll等函數分別是把字符串轉化為int, double, float, long, long long型。

那么,思路就和Python中一樣了,利用異常捕捉。

bool isdouble(string x) {
	double y;
	try{
		y = stod(x);
	}
	catch (const std::exception&){
		return false;
	}
	return true;
}

同理,原理是stod()這個函數,無法將非數字的變量轉換為double。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM