我写的代码有误,不知错在哪,help
题目中原码(符号@#1等效于空格,需要填入代码)
#include <stdio.h>
void substring(char *str1,char *str2,int index,int length);
main()
{ int idx,len;
char a[200], b[200];
gets(a);
scanf("%d%d",&idx,&len);
substring(a,b,idx,len);
printf("%s",b);
}
void substring(char *str1,char *str2,int index,int length)
{ char *p;
for(p=@#1;p<=@#2;p++)
{
//提示:在这里,除了把str1中的相应字符复制给str2外,还需要防止str1中的字符用完
//即当str1中的字符用完时,不再复制字符,提前break掉for循环。如何检验str1中的字
//符是否用完呢?
@@1
@@1
}
@#3 //给str2添加结束符。
}
我自己写的代码,求修正
#include <stdio.h>
void substring(char *str1,char *str2,int index,int length);
main()
{ int idx,len;
char a[200], b[200];
gets(a);
scanf("%d%d",&idx,&len);
substring(a,b,idx,len);
printf("%s",b);
}
void substring(char *str1,char *str2,int index,int length)
{ char *p;
for(p=str1+index;p<=str1+index+length;p++)
{ //@#1 @#2
//提示:在这里,除了把str1中的相应字符复制给str2外,还需要防止str1中的字符用完
//即当str1中的字符用完时,不再复制字符,提前break掉for循环。如何检验str1中的字
//符是否用完呢?
//@@1
if(*p=='\0')
{
break;
}
int i=0;
str2[i]=*p;
//@@1
}
//@#3 //给str2添加结束符。
}