请指点一下~

ledon1981 2004-03-24 04:28:15
#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
我有些地方的代码作用不太明白~~
可不可以写个注释解释一下~
谢谢指导~
...全文
20 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ledon1981 2004-03-24
  • 打赏
  • 举报
回复
对,我不能总是依赖别人,
一定要自己理解~
谢谢了~
bjskyhorse 2004-03-24
  • 打赏
  • 举报
回复
无非是顺序读文件,转到一下,输出。估计你是有的函数不太明白,多看看MSDN.

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧