T40*_*000 0 c++ arrays char switch-statement
我试图在switch语句中改变我的char数组[10]的值,这样,如果我们有case 1,我的char数组[10] ="january",或者如果我们有case 2,那么array [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;
}
Run Code Online (Sandbox Code Playgroud)
您无法分配这样的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;
}
Run Code Online (Sandbox Code Playgroud)
或者如果你必须坚持char[]:
char month[10];
switch (i)
{
case 1:
strcpy(month,"January");
cout<<month<<endl;
break;
case 2:
strcpy(month,"February");
cout<<month<<endl;
break;
}
Run Code Online (Sandbox Code Playgroud)
你收到错误的原因month[10]是a char,而你正在尝试分配const char*它,这是非法的.(实际上它是未定义的行为,因为10超出了数组的长度).