下面是将整数转换为字符串的代码,我试图不使用C ++内置函数,但我的代码没有产生任何输出。
int main(){
int a;
string b;
cin>>a;
while(a){
b+=(a%10);
a/=10;
}
cout<<b;
return 0;
}
输入 -
789
预期输出
987
但我没有得到任何答案。 P.S-我在代码中使用了所有必需的头文件。
答案 0 :(得分:5)
您无法将int
添加到string
(或者更确切地说,在这种情况下您不应该这样做)。您需要to_string
将int转换为字符串,以便+=
运算符充当串联:
#include <iostream>
#include <string>
using namespace std;
int main(){
int a;
string b;
cin>>a;
while(a){
b+=std::to_string(a%10);
a/=10;
}
cout<<b;
return 0;
}
std::string
有operator+=
可以允许快速连接。您可以连接另一个字符串或。通过重载选择了哪个版本的串联。当您尝试string += int
时,选择了char
重载(int
转换为char
),因此随机垃圾会附加到您的字符串而不是您想要的内容。