当前位置:  开发笔记 > 编程语言 > 正文

如何在C++中将int附加到字符串中?

如何解决《如何在C++中将int附加到字符串中?》经验,为你挑选了6个好方法。

使用C++ 11,您可以编写:

#include      // to use std::string, std::to_string() and "+" operator acting on strings 

int i = 4;
std::string text = "Player ";
text += std::to_string(i);


Sebastian Re.. 192

好吧,如果你使用cout,你可以直接写整数,就像在

std::cout << text << i;

将各种对象转换为字符串的C++方法是通过字符串流.如果你没有一个方便,只需创建一个.

#include 

std::ostringstream oss;
oss << text << i;
std::cout << oss.str();

或者,您可以只转换整数并将其附加到字符串.

oss << i;
text += oss.str();

最后,Boost库提供了boost::lexical_cast一个包含字符串流转换的语法,类似于内置类型转换.

#include 

text += boost::lexical_cast(i);

这也是相反的方式,即解析字符串.



1> headmyshould..:

使用C++ 11,您可以编写:

#include      // to use std::string, std::to_string() and "+" operator acting on strings 

int i = 4;
std::string text = "Player ";
text += std::to_string(i);



2> Sebastian Re..:

好吧,如果你使用cout,你可以直接写整数,就像在

std::cout << text << i;

将各种对象转换为字符串的C++方法是通过字符串流.如果你没有一个方便,只需创建一个.

#include 

std::ostringstream oss;
oss << text << i;
std::cout << oss.str();

或者,您可以只转换整数并将其附加到字符串.

oss << i;
text += oss.str();

最后,Boost库提供了boost::lexical_cast一个包含字符串流转换的语法,类似于内置类型转换.

#include 

text += boost::lexical_cast(i);

这也是相反的方式,即解析字符串.



3> Eric..:
printf("Player %d", i);

(你喜欢我的答案;我仍然讨厌C++ I/O运算符.)

:-P


这个答案的问题是,它"打印"字符串和int,这不会附加它,在c ++中你可能想要将值输出到不同于"cout"的流中,这对于printf来说是不可能的.
@Kyborek - 我用同样的条件回答了这个问题.如果你真的想要追加而不是打印,那么还有一套标准的函数库来做到这一点.例如,参见`sprintf`及其安全变体(http://msdn.microsoft.com/en-us/library/vstudio/ybk95axf.aspx).
以下是Eric的评论:`char cstr [10]; sprintf(cstr,"Player%d",i);`或`char*cstr; asprintf(cstr,"Player%d",i);

4> Fire Lancer..:

这些适用于一般字符串(如果您不想输出到文件/控制台,但存储以供以后使用或某些东西).

boost.lexical_cast

MyStr += boost::lexical_cast(MyInt);

字符串流

//sstream.h
std::stringstream Stream;
Stream.str(MyStr);
Stream << MyInt;
MyStr = Stream.str();

// If you're using a stream (for example, cout), rather than std::string
someStream << MyInt;



5> Jason Baker..:

对于记录,std::stringstream如果要在实际输出之前创建字符串,也可以使用a .



6> jjnguy..:
cout << text << " " << i << endl;

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有