【问题标题】:Merging text files in C在 C 中合并文本文件
【发布时间】: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,则必须找到一个简单的排序算法。插入排序很慢,但它比冒泡排序花费的时间更少。

标签: c file merge strcmp


【解决方案1】:

对于每个文件,您可以考虑每个字符串,然后使用strcmp 使用您选择的任何排序算法比较字符串并将结果放在目标文件中。这将按字母顺序合并文件。

【讨论】:

    猜你喜欢
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多