请实现如下函数原型(参数变量名可以修改,但函数名、参数类型、返回值类型不可修改):
void merge_file(const char *src1, const char *src2, const char *dst);
void upper_file(const char *src, const char *dst);
void lower_file(const char *src, const char *dst);
void sort_inc_file(const char *src, const char *dst);
void sort_dec_file(const char *src, const char *dst);
下述的 src, dst 等都是指文件名为 src, dst 等的文件。
对于 merge_file 函数,从 src1 和 src2 中读取单词,并按照各自读入时的顺序,先将 src1 中的单词输出到 dst 中,再将 src2 中的单词输出到 dst 中。
对于 upper_file 函数,从 src 中读取单词,将单词中的每个字母都改为大写形式,然后按照读入时的顺序输出至 dst 中。
对于 lower_file 函数,从 src 中读取单词,将单词中的每个字母都改为小写形式,然后按照读入时的顺序输出至 dst 中。
对于 sort_inc_file 函数,从 src 中读取单词,将所有单词按照字典序升序排序(单个字符的大小比较等价于其对应的 ASCII 值的大小比较),然后按照该顺序输出至 dst 中。
对于 sort_dec_file 函数,从 src 中读取单词,将所有单词按照字典序降序排序(单个字符的大小比较等价于其对应的 ASCII 值的大小比较),然后按照该顺序输出至 dst 中。
提交代码时,请使用如下模板:
void merge_file(const char *src1, const char *src2, const char *dst) {}
void upper_file(const char *src, const char *dst) {}
void lower_file(const char *src, const char *dst) {}
void sort_inc_file(const char *src, const char *dst) {}
void sort_dec_file(const char *src, const char *dst) {}
// ATTENTION: DO NOT MODIFY THE CODE BELOW
#include "test.hpp"
int main()
{
test();
return 0;
}
当然,这是一个对于任何操作,都什么也不做的程序,显然是错误的。不过,这段代码够通过编译,请在此基础上进行修改后提交。
若编译失败,请检查代码,保证没有修改以上5 个函数的声明,并且没有修改最后7 行代码。 每个单词的最大长度为10 ,单词的字符集为 26 个大写字母和 26 个小写字母。
一个文件中保证输入单词的数量不超过100 ,每个单词一行,保证输入文件的最后一个字符是 '\n' .
注意:每个文件中的单词个数是不确定的,你可以通过读入函数的返回值,来判断是否已经读完全部的单词。
注意:请不要修改 stdin,stdout 和 stderr 的值(比如使用 freopen 函数等),也不要从标准输入进行任何读入、向标准输出、标准错误输出进行任何输出,否则可能会导致结果错误。