字符串和数值之间的转换
c标准库:
字符串转数字
atof
atoi
atol
atoll
_atoi64
strtof
strtod
strtold
strtol
strtoll
strtoul
char* pEnd = NULL;
float num = strtof(“3.23”, &pEnd);
数字转字符串
itoa
ltoa
ultoa
多字节(char*)转宽字节(wchar_t*)
mbtowc
mbstowcs_s
mbstowcs
…
宽字节(wchar_t*) 转 多字节(char*)
wctomb
wctomb_s
wcstombs_s
wcstombs
…
更多详见:stdlib.h
c++标准库:
数字转字符串:
to_string
stringstream
wstringstream
字符串转数值:
stoi
stol
stoul
stoll
stof
stod
stold
支持wstring
stringstream
wstringstream
示例:
void teststringstream()
{
std::stringstream strstream;
//std::wstringstream
std::string str;
strstream << 123;
strstream >> str;
std::cout << str << std::endl;
strstream.clear();
strstream << "456";
int itest = 0;
strstream >> itest;
std::cout << itest << std::endl;
}
boost库:
数值转字符串:
lexical_cast
字符串转数值:
lexical_cast
示例:
void lexical_cast_test()
{
int itest = 100;
std::string str = boost::lexical_cast<std::string>(itest);
std::wstring wstr = boost::lexical_cast<std::wstring>(itest);
int itest2 = boost::lexical_cast<int>(str);
int itest3 = boost::lexical_cast<int>(wstr);
}