函数Rdata()实现从文件IN.dat中读取一篇英文文章存入字符串数组string中,请编写函数SortCharA(),其功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字爷串数组string中。最后调用函数Wdata(),把结果string输出到OUT.dat文件中。例如,原文:dAe, BfC.CcbbAA结果:,. ABCdefAACbbc原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。注意:部分源程序已经给出。请勿改动主函数main()、读数据函数Rdata()和输出数据函数Wdata()的内容。include <stdio.h>include <string.h>include <conio.h>char string [50] [80];int maxline = 0; /* 文章的总行数 */int Rdata (void);void Wdata (void);void SortCharA(void){}void main (){ if (Rdata ()){ printf("数据文件 IN. dat 不能打开! \n\007");return;}SortCharA ();Wdata ( );}int Rdata (void){ FILE *fp;int i = 0;char *p;if ((fp = fopen("IN. dat", "r")) == NULL)return 1;while (fgets(string[i], 80, fp) != NULL){ p = strchr(string[i], '\n');if (p)*p = 0;i++;}maxline = i;fclose (fp);return 0;}void Wdata (void){ FILE *fp;int i;fp = fopen("OUT. dat", "w");for (i=0; i<maxline; i++){ printf("%s\n", string[i]);fprintf(fp, "%s\n", string[i]);}fclose (fp);}
函数Rdata()实现从文件IN.dat中读取一篇英文文章存入字符串数组string中,请编写函数SortCharA(),其功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字爷串数组string中。最后调用函数Wdata(),把结果string输出到OUT.dat文件中。
例如,原文:dAe, BfC.
CcbbAA
结果:,. ABCdef
AACbbc
原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。
注意:部分源程序已经给出。请勿改动主函数main()、读数据函数Rdata()和输出数据函数Wdata()的内容。
include <stdio.h>
include <string.h>
include <conio.h>
char string [50] [80];
int maxline = 0; /* 文章的总行数 */
int Rdata (void);
void Wdata (void);
void SortCharA(void)
{
}
void main ()
{ if (Rdata ())
{ printf("数据文件 IN. dat 不能打开! \n\007");
return;
}
SortCharA ();
Wdata ( );
}
int Rdata (void)
{ FILE *fp;
int i = 0;
char *p;
if ((fp = fopen("IN. dat", "r")) == NULL)
return 1;
while (fgets(string[i], 80, fp) != NULL)
{ p = strchr(string[i], '\n');
if (p)
*p = 0;
i++;
}
maxline = i;
fclose (fp);
return 0;
}
void Wdata (void)
{ FILE *fp;
int i;
fp = fopen("OUT. dat", "w");
for (i=0; i<maxline; i++)
{ printf("%s\n", string[i]);
fprintf(fp, "%s\n", string[i]);
}
fclose (fp);
}