指定位置输出字符串
主函数部分
#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或结尾的次数
}
本文介绍了一个C语言程序,该程序能够在指定的字符串中查找并输出从特定起始字符到结束字符之间的所有字符。通过主函数读取用户输入的字符串及起始和结束标记,调用自定义函数进行匹配和输出。

被折叠的 条评论
为什么被折叠?



