刚开始使用C++。在处理数组和字符串时遇到错误:“数组初始化器必须是初始化器列表或字符串文字”。这是我的代码:

#include<string>
using namespace std;

bool feast(string beast, string dish){
    int dishLn = dish.length();
    bool elig;
    char beastM[] = beast;
    char dishM[] = dish;

    elig = (beastM[0] == dishM[dishLn - 1]) ? true : false;

    return elig;
}

我想要做的是检查野兽字符串的第一个字符是否与菜串的最后一个字符相等,然后输出true,否则输出false。所以我将野兽字符串转换为字符数组,然后检查野兽和菜肴的第一个元素。

但是我一直遇到这个错误。

错误对应于char beastM []和char dishM []。据我所知,该代码应该有效,因为在函数参数中,野兽和菜肴都以字符串形式给出。并将它们转换为char数组不是什么大问题。

感谢所有帮助。

干杯!

最佳答案

您不能直接将字符串分配给char数组

bool feast(string beast, string dish){

    bool elig;

    elig = (beast.at(0) == dish.at(dish.length() - 1) ? true : false;

    return elig;
}

07-24 09:45