【MAC上でC++】Day 54-3.実験11-1-6指定位置出力文字列(20分)
1169 ワード
実験11-1-6指定位置出力文字列(20分)
1.タイトルの抜粋
https://pintia.cn/problem-sets/13/problems/592
2.テーマ内容
この問題では、1つの関数を実装し、1つの文字列と2つの文字に対して、1番目の文字と一致する位置から2番目の文字と一致する位置までのすべての文字を印刷する必要があります.
関数インタフェースの定義:
char *match( char *s, char ch1, char ch2 ); 関数matchは、s内のch 1からch 2までのすべての文字を印刷し、ch 1のアドレスを返します.
サンプル1を入力:
program r g
出力サンプル1:
rog rogram
入力サンプル2:
program z o
出力サンプル2:
(空行)(空行)
入力サンプル3:
program g z
出力サンプル3:
gram gram
3.ソース参照
1.タイトルの抜粋
https://pintia.cn/problem-sets/13/problems/592
2.テーマ内容
この問題では、1つの関数を実装し、1つの文字列と2つの文字に対して、1番目の文字と一致する位置から2番目の文字と一致する位置までのすべての文字を印刷する必要があります.
関数インタフェースの定義:
char *match( char *s, char ch1, char ch2 ); 関数matchは、s内のch 1からch 2までのすべての文字を印刷し、ch 1のアドレスを返します.
サンプル1を入力:
program r g
出力サンプル1:
rog rogram
入力サンプル2:
program z o
出力サンプル2:
(空行)(空行)
入力サンプル3:
program g z
出力サンプル3:
gram gram
3.ソース参照
#include
using namespace std;
#define MAXS 10
char *match( char *s, char ch1, char ch2 );
int main()
{
char str[MAXS], ch_start, ch_end, *p;
cin >> str;
cin >> ch_start >> ch_end;
p = match(str, ch_start, ch_end);
cout << p << endl;
return 0;
}
char *match( char *s, char ch1, char ch2 )
{
char *p = NULL, *q = NULL, *t = NULL;
p = s;
while((*p != ch1) && (*p != '\0'))
{
p++;
}
q = p;
while(*q != '\0')
{
cout << *q;
if(*q == ch2)
{
break;
}
q++;
}
cout << endl;
return p;
}