指定位置輸出字符串

習題11-5 指定位置輸出字符串   (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

#include <stdio.h>
#include<string.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;
}


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

	int i=0,j=0,k=0,len=0;
	char *p=NULL;

	len = strlen(s);

	for(i=0;i<len;i++){
		if(s[i]==ch1){
			p=&s[i];
			for(j=i;j<len;j++){
				if(s[j]!=ch2){
					printf("%c", s[j]);
				}
				if(s[j]==ch2){
					printf("%c\n", s[j]);
					return p;
				}	
			}
			printf("\n");
			return p;
		}
	}
	printf("\n");
	return p;
}






發佈了94 篇原創文章 · 獲贊 80 · 訪問量 49萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章