0

假设给你一个准备不好的文本文件,例如,单词之间有多个字符空格、文本中的空行、重复的字符序列等。你的任务是阅读这个文本文件并执行一些简单的编辑,然后将结果写入单独的文件。以下是您必须完成的具体任务:

(i) 编写一个函数 compress(),在文本行中用字符 $n$ 替换所有四个或更多空格的序列,其中 n 是空格的数量。如果在输入文本中找到字符 $ 必须做什么?将结果存储在单独的文本文件中。

(ii) 编写一个函数 expand(),将上面由 compress() 函数创建的文本文件转换为重新生成原始文本。

您可以使用以下示例文本文件 original-text.txt 测试 (i) 和 (ii) 的 compress() 和 expand() 函数

1: ^^^^假设^你^是^给定^with^a^text^^^^^^^^^文件^那个^已经^已经^^^糟糕^^^

2:准备^^^如^如^更多^^^^比^一个^字符^^^^^^^^^^^^^^^^之间的空格^^

3:单词,^^^行^in^the^^^^text^^^^^^that^are^empty,^repeated^sequence^^^^^^^^

4:空格^^^^^由^^^^^个字符^^^^$n$^^^^^,^其中^^^n^是^^个^个^个^空格

5: ^^^^^$^What^must^be^^^^^^done^if^^^the^character^$^is^found^in^the^input^text

6: ?.Storetheresultinaseparatetext^file^^^^^^。

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

8:写^a^函数^^^^^expand()^that^converts^^^^^^$n$^the^text^file^create。

请注意,上面显示的每个文本行开头的数字不是文本文件的一部分,并且上例中文本文件中的字符空格由“^”字符表示(在实际的文本文件中,空格字符' ' 将会被使用)。

使用文件 original-text.txt 作为输入的 compress() 函数的示例输出:

1:$4$假设给你一个文本$10$的文件已经很糟糕了

2:准备如more$4$than一个字符$16$之间的空格

3:$4$text$6$中为空的单词、行,重复序列$8$

4:空格$5$按字符$5$$n$$5$,其中n为空格数

5: $5$$ 如果在输入文本中找到字符 $ 必须是 $6$done

6: ?.Storetheresultinaseparatetext 文件$6$。

7:24美元

8: 编写一个函数$5$expand() 来转换$6$$n$ 的文本文件创建。

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