【发布时间】:2012-05-06 22:27:40
【问题描述】:
我一直在尝试创建一个函数,将两个文本文件合并成一个新文件,然后按字母顺序排序。如果我是对的,那么下面的代码应该将这两个文件组合成一个新文件(newcat),但是如何使用 strcmp 函数将字符串“排序”为字母顺序?
void combine(FILE* cat1, FILE* cat2, FILE* newcat)
{
char ch;
while((ch = fgetc(cat1)) != EOF)
fputc(ch,newcat);
while((ch = fgetc(cat2)) != EOF)
fputc(ch,newcat);
fclose (cat1);
fclose (cat2);
fclose (newcat);
}
【问题讨论】:
-
char ch;是 非常非常非常非常错误! 使用int ch;。 -
您必须将新文件作为行数组加载到内存中,然后在该行上使用排序算法,然后写出排序后的数组。在读取这两个文件时,您无法进行任何排序,因为您只是逐个字符地读取它们。
-
“我一直在尝试”和“如果我是对的”毫无意义。如果您一直在尝试,您就会知道代码是否正确,这意味着您还没有尝试过。请先尝试自己弄清楚你的功课,然后发布代码和关于什么不按你期望的方式工作的具体问题。如果我们为您完成工作,除了如何复制和粘贴其他人的工作外,您不会学到任何东西。 :)
-
这是作业吗?如果是,并且您必须使用 C,则必须找到一个简单的排序算法。插入排序很慢,但它比冒泡排序花费的时间更少。