习题11-5 指定位置输出字符串 (20 分)

#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);

    system("pause");
    return 0;
}

/* 你的代码将被嵌在这里 */
char *match(char *s, char ch1, char ch2) {
    int flag = 0, d = -1, count = 0;
    for (int i = 0; i < strlen(s); i++) {
        if (s[i] == ch1 && count == 0) {
            flag = 1;
            d = i;
            count++;
        }
        if (flag == 1)
            printf("%c", s[i]);
        if (s[i] == ch2 && count == 1) {
            flag = 0;
            count++;
        }
    }
    printf("\n");
    if (d != -1)
        return &s[d];
    else
        return s + strlen(s);
}

这道题比较难,return s+strlen(s) 是一个难点。

posted @ 2022-02-28 09:35  JamesGordan  阅读(104)  评论(0)    收藏  举报