• 实验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
    ", str);
        scanf("%c %c", &ch_start, &ch_end);
        p = match(str, ch_start, ch_end);
        printf("%s
    ", 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('
    ');
        return t;
    }
  • 相关阅读:
    C# 控制反转(IOC: Inverse Of Control) & 依赖注入(DI: Independence Inject)
    英语常见短语汇总001
    ASP.Net Web.config 中引用外部config文件
    CSS样式汇总
    RSA非对称加密算法
    排序算法【2】——快速排序
    cmake引入boost
    boost之algorithm
    tar命令
    欧拉定理
  • 原文地址:https://www.cnblogs.com/8023spz/p/12241096.html
Copyright © 2020-2023  润新知