반응형
C ++ 정수-> std :: string 변환. 간단한 기능?
문제 : 정수가 있습니다. 이 정수는 stl :: string 유형으로 변환해야합니다.
과거에 저는 stringstream
변환을 해왔는데 , 그저 번거 롭습니다. 나는 C 방식이을 수행하는 것을 알고 sprintf
있지만 typesafe (er) 인 C ++ 메서드를 훨씬 선호합니다.
이 작업을 수행하는 더 좋은 방법이 있습니까?
다음은 내가 과거에 사용한 stringstream 접근 방식입니다.
std::string intToString(int i)
{
std::stringstream ss;
std::string s;
ss << i;
s = ss.str();
return s;
}
물론 다음과 같이 다시 작성할 수 있습니다.
template<class T>
std::string t_to_string(T i)
{
std::stringstream ss;
std::string s;
ss << i;
s = ss.str();
return s;
}
그러나 나는 이것이 상당히 '무거운'구현이라는 개념을 가지고 있습니다.
Zan은 호출이 매우 훌륭하다고 언급했습니다.
std::string s = t_to_string(my_integer);
어쨌든 더 좋은 방법은 ... 좋은 것입니다.
관련 :
이제 C ++ 11에서는
#include <string>
string s = std::to_string(123);
참조 링크 : http://en.cppreference.com/w/cpp/string/basic_string/to_string
앞서 언급했듯이 lexical_cast를 강화하는 것이 좋습니다. 상당히 좋은 구문을 가지고있을뿐만 아니라 :
#include <boost/lexical_cast.hpp>
std::string s = boost::lexical_cast<std::string>(i);
또한 몇 가지 안전을 제공합니다.
try{
std::string s = boost::lexical_cast<std::string>(i);
}catch(boost::bad_lexical_cast &){
...
}
표준에서는 그렇지 않습니다. 일부 구현에는 비표준 itoa () 함수가 있으며 Boost의 lexical_cast를 찾을 수 있지만 표준을 고수한다면 stringstream과 sprintf () (만약 있다면 snprintf ()) 중에서 선택할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/273908/c-integer-stdstring-conversion-simple-function
반응형
'programing tip' 카테고리의 다른 글
Unicoin 채굴 및 캔버스 클릭 (0) | 2020.10.16 |
---|---|
로컬 gulp를 찾을 수 없음 (실행 시도 : npm install gulp) (0) | 2020.10.16 |
C #에서 yield return iterator를 사용하는 목적 / 장점은 무엇입니까? (0) | 2020.10.16 |
PHP의 연관 배열에 항목 푸시 (0) | 2020.10.16 |
기존 열의 값과 동일한 기본값을 사용하여 테이블에 열 추가 (0) | 2020.10.15 |