【MAC上学習C++】Day 19-3.練習問題8-5関数を用いて文字列部分複製を実現(20点)

1010 ワード

練習問題8-5関数を用いて文字列部分のコピーを実現する(20点)
1.タイトルの抜粋
https://pintia.cn/problem-sets/12/problems/338
2.テーマ内容
この問題では、入力文字列tのm番目の文字から始まるすべての文字を文字列sにコピーする関数を記述する必要があります.
関数インタフェースの定義:
void strmcpy( char *t, int m, char *s ); 関数strmcpyは、入力文字列char*tのm番目の文字から始まるすべての文字を文字列char*sにコピーします.mが入力文字列の長さを超える場合、結果文字列は空白列であるべきである.
サンプルを入力:
7 happy new year
出力サンプル:
new year
3.ソース参照
#include

using namespace std;

#define MAXN 20

void strmcpy(char *t, int m, char *s);
void ReadString(char s[]);

int main()
{
    char t[MAXN], s[MAXN];
    int m;

    scanf("%d
", &m); ReadString(t); strmcpy(t, m, s); printf("%s
", s); return 0; } void ReadString(char s[]) { cin.getline(s, MAXN); return; } void strmcpy(char *t, int m, char *s) { int n = strlen(t); if (m < n) { for (int i = 0; i <= n - m; i++) { s[i] = t[m + i - 1]; } } return; }