谁能把这个问题搞定?急!!
25、函数readdat()实现从文件in.dat中读取一篇文文章存入到字符串数组xx中,请编制
函数str0l(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词
进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中
,最后调用函数writedat()把结果xx输出到文件out6.dat中。
例如:原文:You He Me
I am a student.
结果:Me He You
student a am I
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
部分源程序已给出。
请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。
# include"stdio.h"
# include"string.h"
# include"conio.h"
# include"ctype.h"
# include"mem.h"
unsigned char xx[50][80];
int maxline=0;
int readdat(void);
void writedat(void);
void Str0L(void)
{
}
void main()
{
clrscr();
if(readdat())
{printf("Can't open the file ENG.IN!\n");
return;
}
Str0L();
writedat();
}
int readdat(void)
{
FILE *fp;
int i=0;
char *p;
if((fp=fopen("in.dat","r"))==NULL)
return 1;
while(fgets(xx[i],80,fp)!=NULL)
{p=strchr(xx[i],'\n');
if(p)
*p=0;
i++;
}
maxline=i;
fclose(fp);
return 0;
}
void writedat(void)
{FILE *fp;
int i;
fp=fopen("out6.dat","w");
for(i=0;i<maxline;i++)
{printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);
}