6-4 指定位置输出字符串pta

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

函数接口定义:

 
  

char *match( char *s, char ch1, char ch2 );

函数match应打印s中从ch1ch2之间的所有字符,并且返回ch1的地址。

program
r g

输出样例1:

rog
rogram

输入样例2:

program
z o

输出样例2:

(空行)
(空行)

输入样例3:

program
g z

输出样例3:

gram
gram

char *match(char *s, char ch1, char ch2) {  
    int index = -1;  
    int num = 0;  
    for (int k = 0; s[k] != '\0'; k++) {  
        num++;  
    }  
    for (int i = 0; s[i] != '\0'; i++) {  
        if (s[i] == ch1) {  
            index = i;  
            break;  
        }  
    }  
    if (index != -1) {  
        for (int j = index; s[j] != '\0'; j++) {  
            printf("%c", s[j]);  
            if (s[j] == ch2) {  
                break;  
            }  
        }  
    } 
    printf("\n");  
    return index != -1 ? s + index : s + num; 
}

你可能感兴趣的:(算法,开发语言)