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