不太明白为什么最后返回ch1的地址为什么是$而且还会溢出、
#include <stdio.h>
#define MAXS 10
char *match( char *s, char ch1, char ch2 );
int main()
{
char str[MAXS], ch_start, ch_end, *p;
scanf("%s\n", str);
scanf("%c %c", &ch_start, &ch_end);
p = match(str, ch_start, ch_end);
printf("%s\n", p);
return 0;
}
/* 你的代码将被嵌在这里 */
char *match( char *s, char ch1, char ch2 )
{
char* p,* q;
p=s;
q=&ch1;
while(*p++)
{
if(*p<=ch1&&*p>=ch2)
{
printf("%c",*p);
}
}
printf("%s",q);
return q;
}