gpt4 book ai didi

c - 反转几个文件的所有字符串

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

我需要一个程序来反转存储在一个或多个文本文件中的所有字符串的顺序。这是我到目前为止所得到的:

#include <stdio.h>

main(int argc, char *argv[])
{
int i;
for (i=1;i < argc;i++)
{
FILE *MyFile=fopen(argv[i], "r");
int i,len;
char str[1000], *ptr;
fgets(str, 1000, MyFile);
ptr = str;
for(i=0;i<1000;i++)
{
if(*ptr == '\0') break;
ptr++;
}
len = i;
ptr--;
for(i=len; i>0; i--)
{
printf("%c",*ptr--);
}
printf("\n");
fclose (MyFile);
}
return 0;
}

我无法做的是正确循环程序,以便它反转所有字符串。目前它反转所有文件的第一个字符串,但是当遇到换行符时 fgets 停止。我试图做的是计算当前文件中的行数,执行一个 for 循环,最后执行另一个 fgets(str, 1000, MyFile); 来推进 fgets,但是我不知何故设法把事情搞砸了。

我想到的另一个选择是创建一个单独的函数,它只反转给定的字符串,并在主函数中调用该函数适当的次数,但我不确定如何处理 argc 和 *argv[ ] 在这种情况下。

有什么帮助吗?谢谢!

最佳答案

  • 您正在用内部声明的另一个变量破坏外部循环的 i 变量。这很可能就是它不起作用的原因。
  • 您应该使用strlen() 函数来获取字符串长度,而不是手动计算。
  • 除非您保证拥有最多 1000 字节的字符串,否则您应该考虑使用更智能的算法来满足更长的字符串。

关于c - 反转几个文件的所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19624878/

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