将int转换为字符串

时间:2014-08-07 19:57:02

标签: c++ string int

此处str2是我需要附加的字符串,str1是我追加到str2的字符串。在我最后追加到str2后,我需要在int cnt附加一个数字(str2)。所以我使用下面的代码,它出现在我的脑海中并且正在运行。像这样的代码是不对的,因为我看到编译器抱怨库的string s = lexical_cast<string>(a);itoa (i,buffer,10);实现的用法。

    string str2;
    string str1;
    int cnt;
    str2 += str1 ;
    str2 += char(cnt+48);//cnt converted to ASCII char and appended;

2 个答案:

答案 0 :(得分:5)

本声明

str2 += char(cnt+48);

很糟糕。首先它使用幻数48.最好至少写为

str2 += char( cnt + '0' );

其次,只有当cnt包含一位数字时,代码才会起作用。

最好使用标准函数std::to_string例如

str2 += std::to_string( cnt );

答案 1 :(得分:0)

如果您不想使用c ++ 11及其std::to_string(...),则可以使用ostringstream类。

#include <iostream>
#include <sstream>

using namespace std;

int main()
{
    ostringstream ss;

    ss << 1;

    string str = ss.str();

    cout << str << endl;

    return 0;
}

输出:

1