请指点一下~
#include"stdio.h"
#include"string.h"
#include"conio.h"
#include"ctype.h"
char xx[50][80];
int maxline=0;
int ReadDat(void);
void WriteDat(void);
void main()
{
clrscr();
if(ReadDat())
{
printf("Data file IN.DAT cannot open!\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;
clrscr();
fp=fopen("out.dat","w");
for(i=0;i<maxline;i++)
{
printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);
}
strOL(void)
{
int i,k;
char *p1,*p2;
char t[80],t1[80];
for(i=0;i<maxline;i++)
{
p2=p1=strchr(xx[i],'\0')-'\0';
t[0]=t1[0]='\0';
k=1;
while(k)
{
while(isalpha(*p1)==0&&p1!=xx[i])
{
p1--;p2=p1;
}
while(isalpha(*p1)&&p1>=xx[i])
p1--;
memcpy(t1,p1+1,p2-p1);
t1[p2-p1]=0;
strcat(t,t1);
strcat(t," ");
if(p1<xx[i])
k=0;
}
strcpy(xx[i],t);
}
}
这个问题是这样的:实现字符串的倒排~
例如:in.dat 文件内容是:You He Me
I am a student
那么输出out.dat的内容是:Me He You
student a am I
我有些地方的代码作用不太明白~~
可不可以写个注释解释一下~
谢谢指导~