这是题目想要的输出
这是我的输出
请大家帮忙改正一下,我感觉两者没什么区别,谢谢!
代码如下
char *match( char *s, char ch1, char ch2 ){
char *p,*q=NULL,*c1;
while(*s!='\0'){
if(*s==ch1){
p=s;
while(*s!='\0'){
if(*s==ch2){
q=s;
break;
}
s++;
}
if(*s=='\0'){
c1=p;
printf("%s\n",p);
return c1;
}else{
break;
}
}
s++;
}
if(*s=='\0'){//这是处理样例2时的代码;
printf("%s\n",NULL);
return NULL;
}
c1=p;
for(;p<=q;p++){
printf("%c",*p);
}
printf("\n");
return c1;
}
修改如下,改动处见注释,供参考:
char *match( char *s, char ch1, char ch2 ){
char *p=NULL,*q=NULL,*c1 = NULL; // 修改
while(*s!='\0'){ // 修改
if(*s == ch1){
p = s;
break;
}
s++;
}
while(*s!='\0'){ // 修改
if(*s == ch2){
q = s;
break;
}
s++;
}
// if(*s=='\0'){ // 修改
// c1=p;
// printf("%s\n",p);
// return c1;
// }else{
// break;
// }
// }
// }
// if(*s=='\0'){//这是处理样例2时的代码;
// printf("%s\n",NULL);
// return NULL;
// }
if (!p) // 修改
c1 = s;
else if (!q){ // 修改
printf("%s", p);
c1 = p;
}
else{ // 修改
for(c1 = p; p <= q; p++)
printf("%c",*p);
}
printf("\n");
return c1;
}