c++ 中的数字和字符串的转换
理由:一直忘记数字型的字符串和数字之间的转换,这次总结一下,以便后面再次用到。
其实 C++ 已经给我们写好了相应的函数,直接拿来用即可
QA1:如何把一个数字转换为一个数字字符串?(这个不是很常用)
函数:to_string(C++11)
函数原型:string to_string(int val)
string to_string(long val)
string to_string(long long val)
string to_string(unsigned val)
string to_string(unsigned long val)
string to_string(unsigned long long val)
string to_string(float val)
string to_string(double val)
string to_string(long double val)
Example:
1 int _tmain(int argc, _TCHAR* argv[]) 2 { 3 int val = 12345; 4 string digit = "the string is " + to_string(val); 5 cout << digit << endl; 6 system("pause"); 7 return 0; 8 }
QA2:如何把一个数字型字符串转换为对应的数字型数字?
函数:stoi,stod,stof,stol,stold,stoll,stoul,stoull
函数原型:int stoi(const string& str, size_t* idx = 0, int base = 10)
int stoi(const wstring& str,size_t* idx = 0, int base = 10)
Example:
1 int _tmain(int argc, _TCHAR* argv[]) 2 { 3 string digit = "12345abc"; 4 // string::size_type sz; 5 unsigned int sz; 6 int val = stoi(digit, &sz, 10); 7 cout <<"the digit is " <<val << endl; 8 cout << "从不是数字开始的剩下的字符为:"<<digit.substr(sz) << endl; 9 system("pause"); 10 return 0; 11 }
更多详细信息可以查看:http://www.cplusplus.com/reference/string/stoi/