c++ - 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。所以我将野兽字符串转换为一个字符数组,然后检查它们的第一个元素,包括beast和disc。
但我一直遇到这个错误。
错误对应于char beastM[ ]和char discM[ ]。据我所知,这段代码应该可以工作,因为beast和disc都在函数参数中作为字符串给出。将它们转换为 char 数组应该不是什么大问题。
感谢所有帮助。
干杯!
解决方案
您不能直接将字符串分配给 char 数组
bool feast(string beast, string dish){
bool elig;
elig = (beast.at(0) == dish.at(dish.length() - 1) ? true : false;
return elig;
}
推荐阅读
- javascript - 如何正确获取光标坐标?JavaScript
- r - lme 循环的每个变量的摘要报告
- android - Android Instant App:即时应用程序中不允许“文本转语音”吗?
- php - Laravel 控制器中的 Python 脚本执行错误
- c# - .Net Core 队列后台任务
- python - 尝试升级 python 包时出错
- laravel - facebook登录没有正确重定向回来
- rdf - A subclassOf B、A subclassOf C 和 A subclass of intrsection B 和 C 的区别
- ros - URDF机器人的轮子在“滚动”时重置转向角
- jenkins - 如何从詹金斯运行 jmeter