實驗11-1-6 指定位置輸出字符串 (20分)


本題要求實現一個函數,對給定的一個字符串和兩個字符,打印出給定字符串中從與第一個字符匹配的位置開始到與第二個字符匹配的位置之間的所有字符。

函數接口定義:

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

函數match應打印s中從ch1ch2之間的所有字符,並且返回ch1的地址。

裁判測試程序樣例:

#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; } /* 你的代碼將被嵌在這里 */ 
 

輸入樣例1:

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 ) {
    char *t = "";//初始空串
    int i = 0,c = -1;
    while(s[i] && s[i] != ch1) i ++;
    if(s[i] == ch1) {
        t = s + i;
        c = i;
    }
    while(s[i] && s[i] != ch2) i ++;
    if(s[i] != ch2) i --;//別多了末尾的0
    if(c != -1) {
        while(c <= i) putchar(s[c ++]);
    } 
    putchar('\n');
    return t;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM