0

動的に割り当てられた配列 (ストーリー) を循環するネストされたループを作成し、char ''*' を見つけて、この char が存在する位置に他の動的に割り当てられた配列 (user_input) からの情報を入力するとします。次に、この置換情報を 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];
            }
        }
    }
}
4

1 に答える 1

0

このコードにはいくつかの論理エラーがあります。

  1. 次の行は、プログラムの状態に影響を与えません (副作用はありません)。

    body[i];

  2. iインデックスが不等式の両側に現れるため、次の行が正しく終了する可能性はほとんどありません。

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

  3. 上記の行は、intとメンバー関数 ( length) を比較するため、コンパイルできない場合があります。

  4. 次の行は、i 番目の行全体が単純な 1 つの星であるかどうかをテストします。

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

他にも問題があると確信しています。少ないコードから始めて、すべてを一度に行うのではなく、段階的に割り当てを完了できるかどうかを確認する必要があります。理解しやすくなります。

于 2013-10-22T03:11:17.500 に答える