将int转换为字符串

aja*_*elu 0 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;
Run Code Online (Sandbox Code Playgroud)

Vla*_*cow 5

这个说法

str2 += char(cnt+48);
Run Code Online (Sandbox Code Playgroud)

不好.首先它使用幻数48.最好至少写为

str2 += char( cnt + '0' );
Run Code Online (Sandbox Code Playgroud)

其次,只有当cnt包含一位数字时,代码才有效.

最好使用标准功能std::to_string例如

str2 += std::to_string( cnt );
Run Code Online (Sandbox Code Playgroud)

  • 请注意,在C++ 11中添加了std :: to_string!标签或代码中没有提到C++ 11. (2认同)