繁体   English   中英

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

[英]C++: Why am I getting an error: “array initializer must be an initializer list or string literal”?

刚开始使用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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM