2013-10-22 45 views
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]; 
      } 
     } 
    } 
} 

回答

0

這段代碼有幾個邏輯錯誤。

  1. 以下行對程序狀態沒有影響(無副作用)。

    body[i];

  2. 下面一行是極不可能的,因爲該指數i在不等式的兩邊似乎正確終止。

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

  3. 上述線可能無法編譯,因爲它比較的int和一個成員函數(length)。

  4. 以下行測試整個第i行是否簡單的一顆星。

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

我相信還有其他一些問題。你應該從更少的代碼開始,看看你是否可以一步步完成任務,而不是一次性完成任務。這將更容易理解。

相關問題