#include "stdafx.h" #include < string > #include < iostream > #include < locale > #include < algorithm > int to_int( const std::string& intString ) { bool isDigit = std::all_of( intString.begin(), intString.end(), [](const std::string::value_type& c) -> bool { return std::isdigit(c, std::locale()); }); return isDigit ? std::stoi( intString ) : int(); } float to_float( const std::string& floatString) { bool isDigit = std::all_of( floatString.begin(), floatString.end(), [](const std::string::value_type& c) -> bool { return std::isdigit(c, std::locale()) || (c == '.'); }); return isDigit ? std::stof( floatString ) : float(); } int _tmain(int argc, _TCHAR* argv[]) { std::string invalidIntString = "a10a"; std::cout << "invalid int : " << to_int(invalidIntString) << std::endl; std::string validIntString = "10"; std::cout << "valid int : " << to_int(validIntString) << std::endl; std::string invalidFloatString = "a10.1a"; std::cout << "invalid float : " << to_float(invalidFloatString) << std::endl; std::string validFloatString = "10.1"; std::cout << "valid float : " << to_float(validFloatString) << std::endl; return 0; }
[C++] 문자열을 숫자로 바꾸기(string to int, to_int)
프로그래밍/소스 코드
2012/02/27 04:28
문자열을 숫자로 바꿀 때 간단하게 digit 검사를 하고 값을 변환 하는 예제
덧글을 달아 주세요