用指针做:有一字符串,包含n个字符.写一函数,将此字符串中从第M个字符开始的全部字符复制成为另一个字符串.
我做了,老是编译不成功.求帮助
用指针做:有一字符串,包含n个字符.写一函数,将此字符串中从第M个字符开始的全部字符复制成为另一个字符串.
我做了,老是编译不成功.求帮助
用指针做:有一字符串,包含n个字符.写一函数,将此字符串中从第M个字符开始的全部字符复制成为另一个字符串.
我是这样做的:
char(p1,p2,m)
char *p1,*p2;
{int i;
for(i=0;*p1!=''\0'';i++,p++)
{if(i>=m) *p1++=*p2++;}
}
main()
{char c1[50],c2[50];
gets(c1);
copy(c1,c2,2);
puts(c2);
}
我做了,老是编译不成功(如下:我输入ksdajafjia,则输出:djfi,即从第3个起隔一个复制一个).求帮助
思路是对的,有一些小问题,自己对照一下
void copy(p1,p2,m)
char*p1,*p2 ; int m ; { int i ; for(i=0;*p1!='\0';i++,p1++) { if(i>=m)*p2++=*p1 ; } *p2='\0' ; }
int main(void)
{ char c1[50],c2[50]; gets(c1); copy(c1,c2,2); puts(c2);
return 0; }
COPY中I>M后P1++执行2次的后果.
char copy(char *p1,char *p2,int m)
{int i;
for(i=0;*p1!='\0';i++)
{ if(i>=m) *p2++=*p1++; else p1++; }
}
main()
{char c1[50],c2[50];
gets(c1);
copy(c1,c2,2);
puts(c2);
}
我运行的时候怎么会这两句不对
gets(c1);
puts(c2);