回答
我會使用strtol來轉換數字,並檢查它是否是一個有效的數字字符串,使用「endptr」參數。然後你可以把它轉換成簡短的並檢查是否平等。
只需使用流運營商輸入號碼:(需要頭sstream
)
istringstream istr("12346");
short s;
if ((istr >> s) and istr.eof())
cout << "valid: " << s << endl;
else
cout << "invalid" << endl;
-1這不會總是。考慮你的字符串是否是「1542 2451」。您的程序將打印「有效:1542」。 – 2011-04-29 16:30:54
@Mhhran - 這是如何破壞? 1542是一個有效的短期AFAIK。 OP沒有提到字符串中有多個數字 - 因此,這種解決方案很好... – Nim 2011-04-29 16:32:45
我認爲OP想要檢查: 1.如果字符串包含整數2.如果它在短範圍內。 但這個答案不符合第一個條件。 – 2011-04-29 16:35:20
我喜歡的boost::lexical_cast:
#include <boost/lexical_cast.hpp>
#include <iostream>
#include <string>
int main() {
std::string s("12346");
try {
boost::lexical_cast<unsigned short>(s);
std::cout << "valid\n";
} catch (boost::bad_lexical_cast&) {
std::cout << "invalid\n";
}
}
- 1. 驗證日期字符串
- 2. 日期時間和字符串驗證
- 3. 驗證字符串
- 4. 驗證字符串
- 5. 字符串字母驗證
- 6. jQuery驗證 - 驗證字符串的內容
- 7. PHP驗證和驗證字符串
- 8. 如何以短時間格式驗證輸入字符串
- 9. PHP字符串驗證
- 10. 驗證Facebook DateTime字符串
- 11. 字符串索引驗證
- 12. 驗證查詢字符串?
- 13. Javascript字符串驗證
- 14. MVC3字符串驗證
- 15. 驗證輸入字符串
- 16. 驗證字符串格式
- 17. C#字符串驗證
- 18. Java:驗證字符串
- 19. RegEx字符串驗證器
- 20. 從字符串驗證Uri
- 21. 驗證字符串輸入
- 22. Jing Relaxng驗證字符串
- 23. 字符串驗證ActionScript
- 24. @Min驗證字符串
- 25. 字符串路徑驗證
- 26. DFA字符串驗證
- 27. java-字符串驗證
- 28. 驗證字符串異常
- 29. 驗證字符串vbscript
- 30. Android JAVA字符串驗證
的迄今爲止最簡單的方法檢查一個數字是否在一個範圍內應該把它轉換成一個整數(一個足夠大的整數類型,例如「長」),並使用比較運算符... – delnan 2011-04-29 16:07:30
你的意思是ot她比'errno = 0; strtoul(str,0,10)<= USHRT_MAX &&!errno'? – 2011-04-29 16:11:30