gpt4 book ai didi

c++ - 字符赋值数组不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 14:50:32 24 4
gpt4 key购买 nike

我试图在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com