c++ - 无法将整数写入字符串

标签 c++ string

下面是将整数转换为字符串的代码,我试图不为此使用 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/

相关文章:

c++ - 在 Mac 上使用 Instruments 检查内存泄漏

c++ - 调用静态方法

c++ - 带有 AUI : OpenGL render loop method and wxPaintEvent 的 wxWidgets

c++ - 复制 C++ 字符指针

c++ - WIN32 API 项目中的 ReadDirectoryChangesW 错误?

c++ - 没有第三根弦的胶弦

android - Android中的字符串RSA加密

Python:如果字符串包含特定关键字,则从列表中删除特定字符串 v.2

java - 结束字符串、递归和搜索事件

python:如何在一次搜索中找到\r\n\r\n