C++错误:初始值设定项过多,无法'char[26]'
C++ error: Too many initializers for 'char[26]'
编译时,出现以下错误:
Error: Too many initializers for 'char[26]'.
我一直收到此错误,你能帮我解决这个问题吗?这是代码。
#include <iostream>
#include <fstream>
using namespace std;
int defunct();
int defunct(char a[], char b[], char c[]){
int d,l,s,m,mod;
mod = 47;
s = 1;
m = 0;
for(d = 0;d <= 6;d++){
for(l=0;l<=25;l++){
if (a[d] = c[l]){
s *= l + 1;
}
if (a[d] = ' '){
s *= l + 1;
}
}
}
for(d = 0;d <= 6;d++){
for(l=0;l<=25;l++){
if (b[d] = c[l]){
m *= l + 1;
}
if (b[d] = ' '){
m *= l + 1;
}
}
}
if ((s%mod)==(m%mod)){
cout << "GOn";
}
if ((s%mod)!=(m%mod)){
cout << "STAYn";
}
}
int main(){
int i;
char a[6], b[6];
char alphabet[26] = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
i = 0;
ofstream fout ("ride.out");
ifstream fin ("ride.in");
fin >> a >> b;
fout << defunct(a, b, alphabet);
return 0;
}
我应该怎么做才能摆脱这个错误?谢谢,我非常感谢您的帮助。
您正在用字符串而不是字符创建字母表:
char alphabet[26] = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
用:
char alphabet[26] = {'A', 'B', 'C', /* etc. */};
以下代码片段生成类似的错误:
#include <iostream>
int main()
{
char alphabet[1] = {"A","B"};
return 0;
}
- 。main.cpp|6|错误:'char [1]' 的初始值设定项太多
- 。main.cpp|6|错误:字符数组的初始值设定项字符串太长 [-允许]|
- 。main.cpp|6|警告:未使用的变量"字母表" [-未使用的变量]|
构建失败:2 个错误、1 个警告(0 分钟、7 秒(===|
您的代码具有正确的字母表位置数,但每个位置存储两个字符。在我的代码中,我只有一个位置,我正在尝试存储两个"东西"。
"A">表示您有一个字符串,其中字符"A"后跟 0。您需要有两个位置来存储这些内容。现在将代码更改为以下内容:
char alphabet[2][2] = {"A","B"};
如果这样做,则仅保留上述错误 (3(。(这仅供解释(
要初始化字符,请使用单引号。具有适当数量的位置来存储字符。我希望它有所帮助。
相关文章:
- C++错误:初始值设定项过多,无法'char[26]'
- JavaCPP 错误:无法将参数"1"的"char*"转换为"Abc*
- C++错误:无法将参数 2 从 'char' 隐蔽到 char[]'
- 无法使用类型 'const char *' 的左值初始化类型 'char *' 的成员子对象
- strcmp/char* 转换无法按预期工作
- 无法获取已填充堆栈<char>的顶部元素
- Arduino 无法匹配 Char 数据
- 'char (*RtlpNumberOf(T (&)[N]))[N]':无法从"char *"
- 无法将'char (*)[200]'转换为'char**'
- 无法声明静态 constexpr char []
- 无法从 const char* 转换为 const char *&
- 无法确定为什么函数调用中从 char* 到 char 的无效转换
- 为什么此代码无法将字符push_back到向量中<char>?
- 无法从'unsigned short [9]'转换为'char []'
- 错误:无法将"std::istream {aka std::basic_istream<char>}"lvalue 绑定到"std::basic_istream&<char>&
- 错误 C2440:"正在初始化":无法从"初始值设定项列表"转换为"std::vector<char *,std::分配器<_Ty>>
- 无法从'const char *'转换为'LPCTSTR'
- C 函数错误 - 无法将支撑封闭的初始化器列表转换为char*
- 无法将const char转换为字符串构造字符串
- 错误:无法<char>在赋值中将"std::basic_string"转换为"char"