int转string
//c 11标准增加了全局函数std::to_string:
#include<iostream>
int main() {
int num = 123;
std::string str = std::to_string(num);
std::cout << str << std::endl;
return 0;
}
输出:
123
string转int
//可以使用std::stoi/stol/stoll等等函数
//分别对应int、long,long long
//转化的字符串中开头第一个必须是数字
#include<iostream>
int main() {
std::string str = "123";
//方法1: atoi (c函数)
int num = atoi(str.c_str()); //用str.c_str()先转为char*
std::cout << num << std::endl;
//方法2: stoi (c 函数)
int num = std::stoi(str);
std::cout << num << std::endl;
str = "1234 abcd";
num = std::stoi(str);
std::cout << num << std::endl;
return 0;
}
输出:
123
123
1234 //只会输出1234
使用流
int转string
#include<iostream>
#include<sstream>
std::string i_to_string(int num) {
std::stringstream stream;
stream << num;
return stream.str();
}
int main() {
std::string str("hello");
str = i_to_string(123);
std::cout << str << std::endl;;
return 0;
}
输出:
hello123
使用ASCII码
string转int
#include<iostream>
#include<sstream>
int main() {
std::string s("1234");
std::string::const_iterator iter = s.begin();
int res = 0;
int base = 10; //10进制基底
while(iter != s.end()){
res = res * base ( (*iter ) - '0');
}
std::cout << res << std::endl;
return 0;
}
输出:
1234
int转string
#include<iostream>
#include<sstream>
int main() {
int num = 1234;
std::string res;
do {
int temp = num % 10;
res = temp '0';
num /= 10;
} while(num != 0);//倒着拼接
//倒着输出(rbgin,rend)
for (std::string::const_reverse_iterator it = res.rbegin(); it != res.rend(); it) {
std::cout << *it;
}
return 0;
}
输出:
1234