std::string이 숫자인지 아닌지 판단하는 방법으로 find_first_not_of를 사용하는 방법이 있다.


std::string str;
...
if (str.find_first_not_of("0123456789") == string::npos)
	printf("number");
else
	printf("not number");


아마 find를 10번을 반복하기 때문에 매우 느릴거라 생각되지만 뭐 어쩔 수 없다.

Boost::regex를 사용하라는 의견도 있었는데 안써봤으니 생략. 그리고 라이브러리 쓰기 귀찮으면 위처럼 하는 것 말고는 답이 없는 듯?


* 참고: http://stackoverflow.com/questions/4654636/how-to-determine-if-a-string-is-a-number-with-c


반응형

'프로그래밍 > C++' 카테고리의 다른 글

bits/stdc++.h 파일 내용  (0) 2019.02.12
c++ 로또 번호 생성기 프로그래밍  (0) 2018.08.09
C++ std::string 숫자 여부 판별  (0) 2017.03.11
C++ std::set max element 찾는법  (0) 2017.01.18
C++ 랜덤 셔플  (0) 2016.11.20
C++ online judge에서 freopen 사용방법  (0) 2016.10.16