用C语言实现文章的倒序输出
要求:函数ReadDat()实现从数据文件in.dat中读取一篇英文文章存入到字符串数组xx中。请编写函数StrOL(),其功能是:以读入文章的行为单位,以空格或标点符号(数据文件中仅含含“,”或“。”作为标点符号)作为分隔符,对行中所有单词进行倒排,单词间必须以空格为分割符,之后把已处理的字符串(分隔符只包含空格)按行重新存入字符串数组xx中。最后main函数调用函数WriteDat()把结果xx输出到文件out.dat中。例如:I am a student.I like study,处理后:study like I student a am I程序如下:#include <stdio.h>#include <string.h>#include <ctype.h>char xx[50][80];int maxline=0; /* 文章的总行数 */
int ReadDat(void);void WriteDat(void);
void StrOL(void){
}
void main(){ if(ReadDat()){ printf("数据文件IN.DAT不能打开!\n\007"); return; } StrOL(); 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("out.dat","w"); for(i=0;i<maxline;i++){ printf("%s\n",xx[i]); fprintf(fp,"%s\n",xx[i]); } fclose(fp);}主要是我找不到一个简单的算法,我想到的都太过复杂,所以只好来这里求助高手啦
追问:不好意思,你是怎么测试你的程序的呢?我试试,没有任何输出