gpt4 book ai didi

c - 从文件中读取行并创建按字母顺序排序的数组

转载 作者:太空宇宙 更新时间:2023-11-04 07:11:32 25 4
gpt4 key购买 nike

我正在学习 C,我想完成这个特定的任务。我知道有很多类似的问题和答案,但仍然......我会尽量更具体。比方说,我有一个包含以下行的文件:

program01
programs
aprogram
1program
prog
5program

我现在想要一个数组:

1program
5program
aprogram
prog
program01
programs

所以字符串中只有拉丁文小写字母和数字,没有空格。我知道如何执行一些单独的步骤,但想了解并感受整个(和正确的)概念,可以这么说。可能它可以在首先从文件中读取时即时做出一些排序决定?对于我的特殊情况,手动排序是首选,只是为了更好地学习和可能的优化。比方说,一行的最大长度是 256,行的最大数量是 256。提前致谢。

最佳答案

检查下面的代码:

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

int main(void) {
char a[256][256];
int i=0,j=0,k=0,n;

while(i<256 && fgets(a[i],256,stdin) != NULL)
{
n = strlen(a[i]);
if(n >0 && a[i][n-1] == '\n')
a[i][n -1] = '\0';
i++;
}

for(j=0;j<i;j++)
{
char max[256];
strcpy(max,a[j]);
for(k=j+1;k<i;k++)
{
if(strcmp(a[k],max) < 0)
{
char tmp[256];
strcpy(tmp,a[k]);
strcpy(a[k],max);
strcpy(max,tmp);
}
}
strcpy(a[j],max);
}

for(j=0;j<i;j++)
{
printf("%s\n",a[j]);
}
return 0;
}

关于c - 从文件中读取行并创建按字母顺序排序的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28071593/

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