此处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;
答案 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