如何更正此分配错误

时间:2013-10-22 00:48:19

标签: c++ nested-loops dynamic-arrays

我想创建一个循环遍历动态分配的数组(故事)的嵌套循环找到char''*',并用其他动态分配的数组(user_input)填充此char所在的位置。然后将此替换信息存储在一个名为body的新动态分配数组中作为cout。 这是错误:

1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>,
1>              _Alloc=std::allocator<char>
1>          ]
There is no context in which this conversion is possible
谁能告诉我我做错了什么? 这是我的代码:

void create_story(string & user_inputs, string *story, int num_lines,
        string **body)
{
    *body = new string[num_lines];

    for (int i = 0; i < story[i].length; i++)
    {
        if (story[i] == "*")
        {
            body[i];
        }

        for (int j = 0; j < story[i].length(); j++)
        {
            if (story[i][j] == '*')
            {
                cout << "I found it at character number: " << i;
                *body[i] += user_inputs;
            }
            else
            {
                body[i] += story[i][j];
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

此代码中存在多个逻辑错误。

  1. 以下行对程序状态没有影响(无副作用)。

    body[i];

  2. 由于索引i出现在不等式的两边,因此以下行极不可能正确终止。

    for (int i=0; i<story[i].length; i++)

  3. 上述行可能无法编译,因为它会比较int和成员函数(length)。

  4. 以下一行测试整个第i行是否只是一颗星。

    if(story[i]=="*")

  5. 我确信还有其他问题。您应该从较少的代码开始,看看您是否可以按步骤完成任务,而不是一次性完成所有操作。它会更容易理解。