下面是将整数转换为字符串的代码,我试图不为此使用 C++ 内置函数,但我的代码没有产生任何输出。
int main(){
int a;
string b;
cin>>a;
while(a){
b+=(a%10);
a/=10;
}
cout<<b;
return 0;
}
输入-
789
预期输出-
987
但我没有得到任何答复。 P.S-我已经在代码中使用了所有必需的头文件。
最佳答案
您不能将 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;
}
Demo
发生了什么事?
std::string
有一个 operator+=
这可以允许快速连接。您可以连接另一个字符串或一个字符。通过重载选择哪个版本的连接。当您尝试 string += int
时,选择了 char
重载(int
转换为 char
),因此随机垃圾是附加到您的字符串而不是您想要的。
关于c++ - 无法将整数写入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45774185/