error C2664: 'strcpy' : cannot convert parameter 1 from 'class

c++错误为;errorC2664:'strcpy':cannotconvertparameter1from'classstd::basic_string<char,st... c++
错误为;
error C2664: 'strcpy' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'char *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called

这是函数:
void alterdate(char *p,struct student *stu,int flag)//修改数据函数的定义和实现
{
int i;
struct student temp;
if(flag==1)
{
strcpy(temp.name,p);
for(i=0;i<count;i++)
{
if(strcmp(stu[i].name,temp.name)==0)
{
cout<<"请从新输入"<<stu[i].name<<"的数据"<<endl;
cin>>stu[i].number>>stu[i].math>>stu[i].english;
stu[i].total=stu[i].math+stu[i].english;
stu[i].aver=stu[i].total/2;
}
}
}
else
{
strcpy(temp.number,p);
for(i=0;i<count;i++)
{
if(strcmp(stu[i].number,temp.number)==0)
{
cout<<"请从新输入学号为"<<stu[i].number<<"的数据"<<endl;
cin>>stu[i].name>>stu[i].math>>stu[i].english;
stu[i].total=stu[i].math+stu[i].english;
stu[i].aver=stu[i].total/2;
}
}
}
}
在主函数中定义了一个结构体为:
struct student{
public:
int classroom;
float math,english,total,aver;
char name[30],number[20];
};
调用函数的语句为cout<<"请输入姓名:";
cin>>name;
alterdate(name,stu,1);
break;
这里的stu是结构体的一个数组;
展开
 我来答
wanfustudio
推荐于2016-05-22 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3755万
展开全部
你是不是哪里搞错了, 你这个错误提示是:
你传给'strcpy' 的第一个参数是string类型的,但是看你的结构定义的里面是数组形式的
就怪了,对不上了

你是不是说的跟写的不一样啊
123songmingzhu
2011-07-04 · TA获得超过309个赞
知道小有建树答主
回答量:436
采纳率:0%
帮助的人:261万
展开全部
void alterdate(char *p,struct student *stu,int flag)改为
void alterdate(string p,struct student *stu,int flag)应该行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式