0

たとえば、単語間に複数の文字スペースがある、テキスト内の行が空である、一連の文字が繰り返されているなど、準備が不十分なテキスト ファイルが与えられたとします。あなたのタスクは、このテキスト ファイルを読み取り、いくつかの実行を行うことです。簡単な編集を行い、結果を別のファイルに書き込みます。以下は、実行する必要がある特定のタスクです。

(i) テキスト行で、4 つ以上のブランクのすべてのシーケンスを文字 $n$ で置き換える関数 compress() を作成します。ここで、n はブランクの数です。入力テキストに文字 $ が見つかった場合はどうすればよいですか?. 結果を別のテキスト ファイルに保存します。

(ii) 上記の compress() 関数で作成されたテキスト ファイルを元のテキストに変換する関数 expand() を記述します。

次のサンプル テキスト ファイル original-text.txt を使用して、(i) および (ii) の compress() および expand() 関数をテストできます。

1: ^^^^^あなた^が与えられた^^a^テキスト^^^^^^^^^^^^ファイル^それは^^^ひどく^^^

2: 用意された^^^以上^^^^1文字より^^^^^^^^^^^^^^^^間にスペース^^

3: 単語、^^^^行^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^空の^繰り返し^シーケンス^^^^^^^^

4: 空白^^^^^by^the^^^characters^^^^^$n$^^^^^,^ここで^^^n^は空白の^number^^

5: ^^^^^$^何^^しなければならない^^^^^^もし^^^^^文字^$^が^入力^テキストで^見つかる^場合

6: ?.結果を別のテキスト^ファイルに保存^^^^^^.

7: ^^^^^^^^^^^^^^^^^^^^^^^^^^

8: ^a^関数^^^^^expand()^^変換^^^^^^$n$^^テキスト^ファイル^作成を書きます。

上記の各テキスト行の先頭の数字はテキスト ファイルの一部ではなく、上記の例のテキスト ファイル内の文字スペースは「^」文字で表されていることに注意してください (実際のテキスト ファイルでは、スペース文字は' ' が使用されます)。

ファイル original-text.txt を入力として使用した compress() 関数の出力例:

1: $4$テキスト $10$ ファイルが与えられたとします。

2: $4$以上の$4$一文字$16$スペースなどを用意

3: 単語、$4$text$6$ 内の空の行、繰り返されるシーケンス $8$

4: 空白 $5$ by by characters$5$$n$$5$, n は空白の数

5: $5$$ 入力テキストに文字 $ が見つかった場合に $6$ しなければならないこと

6: ?.結果を別のテキスト ファイル $6$ に保存します。

7: $24$

8: 作成したテキスト ファイルを $6$$n$ に変換する関数 $5$expand() を記述します。

expand() 関数の出力は、original-text.txt のとおりです。

これは私がやろうとしていることです..

int main()
{
    ifstream input("original-text.txt");

    //Read Data
    string data;
    while (!input.eof())
    {
        getline(input,data);
        cout << data << endl;
    }

    int i,n;
    n= 0;
    for( i = 0; data[i] != '\0'; i++ )
    {
        if( data[i] == ' ' )
            n++;

        cout << "$" << n << "$";
    }

    input.close();

    return 0;
}
4

0 に答える 0