我想创建一个循环遍历动态分配的数组(故事)的嵌套循环找到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];
}
}
}
}
答案 0 :(得分:0)
此代码中存在多个逻辑错误。
以下行对程序状态没有影响(无副作用)。
body[i];
由于索引i
出现在不等式的两边,因此以下行极不可能正确终止。
for (int i=0; i<story[i].length; i++)
上述行可能无法编译,因为它会比较int
和成员函数(length
)。
以下一行测试整个第i行是否只是一颗星。
if(story[i]=="*")
我确信还有其他问题。您应该从较少的代码开始,看看您是否可以按步骤完成任务,而不是一次性完成所有操作。它会更容易理解。