8-6 指定位置输出字符串 (20分)

本题要求实现一个函数,对给定的一个字符串和两个字符,打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符。

函数接口定义:
char *match( char *s, char ch1, char ch2 );
函数match应打印s中从ch1到ch2之间的所有字符,并且返回ch1的地址。

#include 

#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 x, y, n, p;

    n = strlen(s);

    for(x = 0;x < n;x++)
    {
        if(s[x] == ch1)
            break;
    }
    p = x;
    if(x == n)
    {  
        return "\n";
    }
    for(y = 0;y < n;y++)
    {
        if(s[y] == ch2)
            break;
    }
    if(y != n)
    for(;x <= y;x++)
    {
        printf("%c", s[x]);
    }
    if(y == n)
    for(;x < y;x++)
    {
        printf("%c", s[x]);
    }
    printf("\n");

    return (s + p);
}

你可能感兴趣的:(8-6 指定位置输出字符串 (20分))