首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-12-04 
请帮我看看这样复制数组错在哪本帖最后由 wolfyc2004 于 2013-12-02 11:30:40 编辑错误提示:invalid conve

请帮我看看这样复制数组错在哪
本帖最后由 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() ; 

热点排行