5

我在 Java 中有这个字符串:

String op="text1 "+z+" text2"+j+" text3"+i+" "+Arrays.toString(vol);

其中“z”、“j”和“i”是 int 变量;“toString()”是一个属于一个类的函数。

class Nod
{
    private:
        char *op;
    public:
        char Nod::toString()
        {
        return *op;
        }
}

并且“vol”是int变量的向量。

我想把它转换成C++。

你能帮我吗?

编辑:

对不起,因为我混淆了你,但“toString()”不是一个属于一个类的函数。

“Arrays.toString()” - 是 Java 中的一个类。

4

2 回答 2

19

要附加int到字符串中,您可以使用std::stringstream

#include <sstream>
#include <string>

std::stringstream oss;

oss << "text1 " << z << " text2" << j << " text3" << i;

std::string str = oss.str();

该方法str()返回string带有流内容副本的 a。

编辑 :

如果你有一个std::vector,你可以这样做:

#include <vector>

std::vector<int> arr(3);
unsigned int size = arr.size();
for ( unsigned int i = 0; i < size; i++ )
    oss << arr[i];

或者有一个 C++11 方法来做所有的事情:

#include <string>
#include <vector>

std::vector<int> arr(3);

std::string result = "text1 " + std::to_string(z);
result += " text2" + std::to_string(j);
result += " text3" + std::to_string(i) + " ";

for ( auto& el : arr )
    result += std::to_string(el);

你可以看看std::to_string

是此代码的实时示例。

请记住,目前并非所有编译器都支持 C++11。

于 2013-08-18T21:57:17.860 回答
2

std::to_string是在 C++11 中执行此操作的另一种方法(不需要额外include的 for sstream):

std::string op = "text1 " + std::to_string(num);
于 2013-08-18T23:18:31.030 回答