首页 > 解决方案 > C++:为什么会出现错误:“数组初始值设定项必须是初始值设定项列表或字符串文字”?

问题描述

刚开始使用 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。所以我将野兽字符串转换为一个字符数组,然后检查它们的第一个元素,包括beastdisc

但我一直遇到这个错误。

错误对应于char beastM[ ]char discM[ ]。据我所知,这段代码应该可以工作,因为beastdisc都在函数参数中作为字符串给出。将它们转换为 char 数组应该不是什么大问题。

感谢所有帮助。

干杯!

标签: c++arraysstringcasting

解决方案


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

bool feast(string beast, string dish){

    bool elig;

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

    return elig;
}

推荐阅读