简体   繁体   English

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

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

just started with C++. 刚开始使用C ++。 Was playing around with arrays and strings and encountered the error: "array initializer must be an initializer list or string literal". 在处理数组和字符串时遇到错误:“数组初始化器必须是初始化器列表或字符串文字”。 Here is my code: 这是我的代码:

#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;
}

What I want to do is check if the first char of the beast string is equal to the last char of the dish string then output true , else false . 我想做的是检查野兽字符串的第一个字符是否等于菜式字符串的最后一个字符 ,然后输出true ,否则输出false So I am converting the beast string to an array of chars and then checking for their first element, for both beast and dish . 所以我将野兽字符串转换为字符数组,然后检查野兽的第一个元素。

But I keep encountering this error. 但是我一直遇到这个错误。

Error corresponds to char beastM[ ] and char dishM[ ] . 错误对应于char beastM []char dishM [] To my knowledge, this code should work since both beast and dish are given as strings in the function parameters. 据我所知,该代码应该起作用,因为在函数参数中, 野兽菜肴都以字符串形式给出。 And converting them to a char array shouldn't be much of a problem. 并将它们转换为char数组不是什么大问题。

All help is appreciated. 感谢所有帮助。

Cheers! 干杯!

you can not directly assign a string to char array 您不能直接将字符串分配给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.

相关问题 C++:为什么我在实际使用字符串时收到错误消息:“数组初始值设定项必须是初始值设定项列表或字符串文字”? - C++: Why am I getting an error: "array initializer must be an initializer list or string literal" when I am in fact using a string? 数组初始化程序必须是初始化程序列表或字符串文字,为什么? - Array initializer must be an initializer list or string literal why? 数组初始化程序必须是初始化程序列表或字符串文字 - array initializer must be an initializer list or string literal C ++错误:数组初始化程序必须是初始化程序列表 - c++ error: array initializer must be an initializer list 为什么在C ++中出现“初始化”:无法从“初始化列表”转换为“ _Objty”的错误? - Why am i getting a “'initializing': cannot convert from 'initializer list' to '_Objty'” error in C++? 为什么我在下面的 C++ 代码中出现错误:错误:表达式列表在初始化程序中被视为复合表达式 [-fpermissive] - why i am getting error in the below C++ code : error: expression list treated as compound expression in initializer [-fpermissive] 数组初始值设定项必须是未显示的初始化列表错误 - Array initializer must be an initializer list error not shown 错误:数组初始化程序必须是初始化程序列表 - error: array initializer must be an initializer list 为什么 std::vector 的字符串文字初始化列表不能创建 std::vector<std::string> 在 C++ 中?</std::string> - Why can't a string literal initializer list for a std::vector create a std::vector<std::string> in C++? c++ 错误:“数组必须用大括号括起来的初始化器初始化” - c++ error: "array must be initialized with a brace-enclosed initializer"
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM