读书人

请帮小弟我看看这样复制数组错在哪

发布时间: 2013-12-04 17:21:02 作者: rapoo

请帮我看看这样复制数组错在哪
本帖最后由 wolfyc2004 于 2013-12-02 11:30:40 编辑 错误提示:invalid conversion from 'const char*' to 'char*'
我想让程序根据不同的month,将英文月份输入到数组emonth中,请高手帮改改,谢谢!
#include<iostream>
using namespace std;
void printdate(int year,int month,int day)
{

char emonth[10];
switch (month)
{
case 1:emonth[10]="January";
break;
case 2:emonth[10]="Februay";
break;
case 3:emonth[10]="March";
break;
case 4:emonth[10]="April";
break;
case 5:emonth[10]="May";
break;
case 6:emonth[10]="June";
break;
case 7:emonth[10]="July";
break;
case 8:emonth[10]="August";
break;
case 9:emonth[10]="September";
break;
case 10:emonth[10]="October";
break;
case 11:emonth[10]="November"; break;
case 12:emonth[10]="December";
break;
}
cout<<emonth[10]<<" "<<day<<" "<<year;
}
int main()
{
printdate(1978,3,9);
system("pause");
}
[解决办法]
char emonth[10]; 换成 const char* emonth = NULL;
[解决办法]
字符串赋值用strcpy函数,例如:
strcpy(emonth, "December");

引用:
错误提示:invalid conversion from 'const char*' to 'char*'
我想让程序根据不同的month,将英文月份输入到数组emonth中,请高手帮改改,谢谢!
#include<iostream>
using namespace std;
void printdate(int year,int month,int day)
{

char emonth[10];
switch (month)
{
case 1:emonth[10]="January";
break;


case 2:emonth[10]="Februay";
break;
case 3:emonth[10]="March";
break;
case 4:emonth[10]="April";
break;
case 5:emonth[10]="May";
break;
case 6:emonth[10]="June";
break;
case 7:emonth[10]="July";
break;
case 8:emonth[10]="August";
break;
case 9:emonth[10]="September";
break;
case 10:emonth[10]="October";
break;
case 11:emonth[10]="November"; break;
case 12:emonth[10]="December";
break;
}
cout<<emonth[10]<<" "<<day<<" "<<year;
}
int main()
{
printdate(1978,3,9);
system("pause");
}


[解决办法]
引用:
字符串赋值用strcpy函数,例如:
strcpy(emonth, "December");

Quote: 引用:

错误提示:invalid conversion from 'const char*' to 'char*'
我想让程序根据不同的month,将英文月份输入到数组emonth中,请高手帮改改,谢谢!
#include<iostream>
using namespace std;
void printdate(int year,int month,int day)
{

char emonth[10];
switch (month)
{
case 1:emonth[10]="January";
break;
case 2:emonth[10]="Februay";
break;
case 3:emonth[10]="March";
break;
case 4:emonth[10]="April";
break;
case 5:emonth[10]="May";
break;
case 6:emonth[10]="June";
break;
case 7:emonth[10]="July";
break;
case 8:

emonth[10]="August";
break;
case 9:emonth[10]="September";
break;
case 10:emonth[10]="October";
break;
case 11:emonth[10]="November"; break;
case 12:emonth[10]="December";
break;
}
cout<<emonth[10]<<" "<<day<<" "<<year;
}
int main()
{
printdate(1978,3,9);
system("pause");
}



还是建议用strcpy_s(emonth, 10, "December");吧。
[解决办法]
1楼的方法是地址赋值操作,也就是不需要自己分配的栈空间 char *emonth = NULL.
然后指向常量字符串

2楼拷贝字符串也可以
strncpy();
memcpy() ;

读书人网 >C++

热点推荐