习题11-5 指定位置输出字符串

    技术2022-07-10  126

    题目:

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

    题目要求:

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

    函数接口定义:

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

    函数match应打印s中从ch1到ch2之间的所有字符,并且返回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 ) { for( int i = 0; i < strlen( s ); i++ ) { if( s[i] == ch1 ) { for( int j = i; j< strlen( s ); j++ ) { printf( "%c", s[j] ); if( s[j] == ch2 ) break; } printf( "\n" ); return ( s + i ); } } printf( "\n" ); return s + strlen( s );//注意没找到需要返回最后的‘\0’的地址,即表示换行 }

     

    Processed: 0.031, SQL: 9