中易网

c语言问题,段错误.warning: assignment makes pointer from integer without a cast。帮修改错误。

答案:3  悬赏:0  
解决时间 2021-01-17 20:27
  • 提问者网友:情歌越听越心酸
  • 2021-01-17 05:47
c语言问题,段错误.warning: assignment makes pointer from integer without a cast。帮修改错误。
最佳答案
  • 二级知识专家网友:上分大魔王
  • 2021-01-17 06:20
#include
#include
void main(int argc, char *argv[])
{
char a[] = "wo shi afuhan ren, wo ai AK47!!!";
char b[] = "afuhan";
char *c;
printf("old string is:%s\n\n",a);
int lena,lenb,lenc,i;
c =strstr(a,b);
printf("string c is:%s\n\n",c);
lena = strlen(a);
lenb = strlen(b);
lenc = strlen(c);
for(i = 0; i < lenc - lenb; i++)
c[i] = c[i + lenb];
for(i =(lena - lenc - 1); i < lena; i++)
a[i] = NULL;
strcat(a,c);
printf("new string is:%s\n\n",a);
}
追问:为什么ab要改为数组,还有,strcat所得值不用变量来接收吗?
全部回答
  • 1楼网友:鱼忧
  • 2021-01-17 08:13
c[i] = c[i + lenb];改变了指针的地址,之前你初始化的时候C里面存了是strstr(a,b)返回的地址!记住指针只是用来储存地址,他没有存储字符的空间。而数组又不同。
  • 2楼网友:往事埋风中
  • 2021-01-17 07:48
我暂时保留我的看法!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息