求大佬帮忙!!!

琉璃星夜 2019-03-12 09:38:34
void modify(char* stuid,char*name,int num)
{

if( !checkAdd(stuid))
{printf("请选择修改项目:1—学号;2—姓名;3—成绩");
scanf("%d",&p);
switch(p)
{
case 2:{
printf("请输入新名字");
scanf("%s",Newname);
strcpy(name,Newname);
printf("成功");
break;
}
}

}
else{printf("无信息");}
}




这是程序的一部分
编译没问题
strcpy(name,Newname);
但是这个改变名字的话不对 不能修改名字 求指教
...全文
162 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐码代码 2019-03-15
  • 打赏
  • 举报
回复
你的p没有声明啊
拥抱Linux 2019-03-14
  • 打赏
  • 举报
回复

估计是 name 或者 Newname 不是字符数组名,而是指针,而且指向的是字符串常量,而不是字符数组。而字符串常量是没法被赋值的。

解决办法很简单:把 name 定义为数组名,在 modify() 里也把 Newname 定义为数组名,并且两个数组的长度相等,以免前短、后长,复制字符串的时候因为放不下而出错。要定义为字符指针,也是同样的道理,需要初始化一下,指向字符数组,而且要避免前短、后长。
琉璃星夜 2019-03-14
  • 打赏
  • 举报
回复
可以运行 编译没错 倒是修改的功能不能实现
636f6c696e 2019-03-13
  • 打赏
  • 举报
回复
具体错误贴出来

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧