C ++:为什么会出现错误:“数组初始化程序必须是初始化程序列表或字符串文字”?

时间:2018-09-13 10:02:37

标签: c++ arrays string casting

只是从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;
}

我要做的是检查野兽字符串的第一个 char 是否等于的最后一个 char 菜串,然后输出 true ,否则输出 false 。因此,我将野兽字符串转换为 chars 的数组,然后检查 beast dish < / em>。

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

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

感谢所有帮助。

干杯!

1 个答案:

答案 0 :(得分:2)

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

bool feast(string beast, string dish){

    bool elig;

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

    return elig;
}