极简单的程序,但不知道错哪了

来源:百度知道 编辑:UC知道 时间:2024/06/15 14:58:53
目的是输入一字符串a[],把它的后m个字符输出到b[];错得莫名其妙的!!

#include <string.h>
#include <stdio.h>
insert(char *q,char *p,int i)
{
strcpy(p,q+i);
}
main()
{
char a[20],b[20];
int m;
scanf("%s%d",a,m);
insert(a,b,m);
printf("%s\n",a);
printf("%s\n\n\n\n",b);
}


scanf("%s%d",a, &m); //m前加取地址符&

q+i后面没有字符串 所以insert是错误的

#include <string.h>
#include <stdio.h>
insert(char *q,char *p,int i)
{
strcpy(p,q+i); //这样做,并不是q的后m个字符
}
main()
{
char a[20],b[20];
int m;
scanf("%s%d",a,m);//m前加&
insert(a,b,m);
printf("%s\n",a);
printf("%s\n",b);
}