我需要一个程序来反转存储在一个或多个文本文件中的所有字符串的顺序。这是我到目前为止所得到的:
#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[]情况。
有什么帮助吗?谢谢!