gpt4 book ai didi

c - 如何按行对文本文件进行排序?

转载 作者:太空宇宙 更新时间:2023-11-04 06:16:46 27 4
gpt4 key购买 nike

我想知道一种按行对文本文件进行排序的简单方法。我有 2 个文件:

文件1:

asazxz
dsa dsasd
dsds tut
pewoq

文件2:

uiosda dsds
poisss

我当前的代码是:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, char *argv[]){

int nrf1=0;
int nrf2=0;

FILE *f1=NULL;
FILE *f2=NULL;
FILE *fe=NULL;
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"r");
fe=fopen(argv[3],"w");

if (f1==NULL || f2==NULL || fe==NULL){
printf("couldn't open a file \n");
return 1;
}
char p;

while (1){
p=fgetc(f1);
if(p==EOF) break;
nrf1++;
}

while(1){
p=fgetc(f2);
if(p==EOF) break;
nrf2++;
}

rewind(f1);
rewind(f2);

while ( (p = fgetc(f1))!= EOF )
fputc(p,fe);

while ( (p = fgetc(f2))!= EOF )
fputc(p,fe);

//if(nrf1>nrf2){
//printf("%s %d \n",argv[1],\nrf1);
//while( (p=fgetc(f1))!=EOF )
//
//}
//else{
//printf("%s %d \n",argv[2],nrf2);
//while( (p=fgetc(f2))!=EOF )
//
//}

rewind(fe);


fclose(f1);
fclose(f2);
fclose(fe);
return 0;
}

我将 file1 和 file2 合并到一个 file3 中

我对如何按行对文件 3 进行排序有一些想法,但我真的不知道如何实现它们。

一个是从两个文本中找出较长的文本,找到一个\n 和直到\n 的所有文本放入一个数组中并对数组进行排序,然后将排序后的数组的每个元素放在一个行表格文件 3.

另一个正在遍历 file3 并尝试以某种方式按字母顺序切换行,如冒泡排序。

编辑:设法做到了,只是需要一些指导,谢谢大家

最佳答案

作为口头程序,您可以:

  1. 分配一个指向字符的指针数组

  2. 读取文件的所有行。为每一行分配一个新的字符串并放入数组中

  3. 如果数组太小,则使用realloc 使其变大。阅读有关 realloc 的信息以避免常见错误。

  4. 读取文件后,使用您自己的冒泡排序或图书馆的qsort 对数组进行排序。阅读有关qsort的内容。

  5. 排序后,从数组中重新写入 file3

编写代码是我留给你的一个很好的练习。

关于c - 如何按行对文本文件进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43831708/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com