我试图在 switch 语句中更改我的 char 数组 [10] 的值,这样,如果我们有情况 1,我的 char 数组 [10]="january",或者如果我们有情况 2,则数组[10]="二月"等等。问题是我收到错误消息,而且我知道我做错了什么。任何帮助将不胜感激。这是我用 Dev-C++ 编写的 switch 语句。
char month[10];
switch (i)
{
case 1:
month[10]="January";
cout<<month<<endl;
break;
case 2:
month[10]="February";
cout<<month<<endl;
break;
}
最佳答案
你不能像这样分配char
数组,你需要使用strcpy
。
或者更好的是,使用 std::string
,这是 C++ 要做的事情。
std::string month;
switch (i)
{
case 1:
month="January";
cout<<month<<endl;
break;
case 2:
month="February";
cout<<month<<endl;
break;
}
或者如果您必须坚持使用 char[]
:
char month[10];
switch (i)
{
case 1:
strcpy(month,"January");
cout<<month<<endl;
break;
case 2:
strcpy(month,"February");
cout<<month<<endl;
break;
}
您收到错误的原因是 month[10]
是一个 char
,而您正试图分配一个 const char*
给它,这是非法的。 (实际上这是未定义的行为,因为 10 超出了数组的长度)。
关于c++ - 字符赋值数组不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9697656/