指定位置输出字符串
主函数部分
#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 )
{
int i=0;//记录指针移动的次数
while(*s!=ch1&&*s!='\0')//寻找开头字符
s=s+1;
if(*s!='\0')//若找到开头字符
{
for(*s;*s!='\0'&&*s!=ch2;s++)//指针从开头字符开始,输出字符直到找到结尾字符
{
if(*s==ch2)//若找到结尾字符
break;
printf("%c",*s);
i++;
}
if(*s!='\0')//由于上一个循环少没有输出结尾字符,判断如果在上面找到结尾字符就输出ch2
printf("%c",ch2);
printf("\n");
}
else//若没有找到开头字符
printf("\n");
return s-i;//s表示从开头移动到ch2或结尾的总次数,i表示从ch1移动到ch2或结尾的次数
}