如何把"一个字符串",一个数字,"一个字符串",一个字符串arra中的另一个数字

时间:2017-11-08 11:10:46

标签: c++ string syntax-error

我对将数据放在字符串数组中有疑问,我的意思是可以像下面这样做:

for(int i{};i<num;i++)
    string[i]={"The degree of",i,"'th vertice is",degree[i]}

我已经尝试过了,我知道它在c ++中不实用,但还有其他任何方法可以做到这一点,我的目标是返回一个字符串,每个学位的数量都由一个名为degree的函数保存,就像我有的一样提到(例如&#34;第4和第45个顶点的度数是2&#34;)。 那有可能这样做吗? 我想调用以下函数:

std::cout<<degree();

感谢您的关注。

2 个答案:

答案 0 :(得分:1)

当然,您可以将所有内容放在一个字符串中,并在每个逻辑行之间添加换行符('\n')。只需合并上面给出的代码片段:

std::string degrees()
{
    std::string   lines;

    for(int i{};i<num;i++)
        lines += "The degree of " + std::to_string(i) +
                 "'th vertice is " + std::to_string(degree[i]) + '\n';

   return lines;
}

答案 1 :(得分:1)

您也可以尝试这样的事情(编辑删除参数传递到fnc度,因为OP不希望这样):

#include <iostream>
#include <sstream>

std::vector<int> degree = { 1,5,4,8,2,12,4,30,45,22 };

std::string degrees()
{
    std::ostringstream oss;

    for (size_t i = 0; i < degree.size(); ++i)
        oss << (i > 0 ? "\n" : "") << "The degree of " << i + 1 << "'th vertice is " << degree[i];

    return oss.str();
}

int main()
{

    std::cout << degrees() << std::endl;

    return 0;
}

打印:

enter image description here