这个函数,是什么以行为单位一次把字符串中所有小写字母o左边的字符串内容一道该串的右边存放,然后把小写字母o删除.
#include <stdio.h>
#include <string.h>
#include <conio.h>
char xx[50][80];
int maxline=0;
int ReadDat(void);
void WriteDat(void);
void StrOR(void)
{
int i,j,k,index,strl;
char ch;
for(i=0;i<maxline;i++)
{
strl=strlen(xx[i]);
index=strl;
for(j=0;j<strl;j++)
if(xx[i][j]=='o')
{ for(k=j;k<strl-1;k++)
xx[i][k]==xx[i][k+1];
xx[i][strl-1]=' ';
index=j;
}
for(j=strl-1;j>=index;j--)
{
ch=xx[i][strl-1];
for(k=strl-1;k>0;k--)
xx[i][k]=xx[i][k-1];
xx[i][0]=ch;
}
}
}
void main()
{
clrscr();
if(ReadDat())
{
printf("数据文件IN.DAT不能打开!\n\007");getch();
return;
}
StrOR();
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("OUT5.DAT","w");
for(i=0;i<maxline;i++)
{
printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);
}
我主要看不懂;STROR函数,
void StrOR(void)
{
int i,j,k,index,strl;
char ch;
for(i=0;i<maxline;i++)
{
strl=strlen(xx[i]);
index=strl;
for(j=0;j<strl;j++)
if(xx[i][j]=='o')
{ for(k=j;k<strl-1;k++)
xx[i][k]==xx[i][k+1];
xx[i][strl-1]=' ';
index=j;
}
for(j=strl-1;j>=index;j--)
{
ch=xx[i][strl-1];
for(k=strl-1;k>0;k--)
xx[i][k]=xx[i][k-1];
xx[i][0]=ch;
}
}
}
请高手解释一下,尤其是那个strl-1怎么不是strl
非常感谢!
对了,题目给了例题;
you have the correct record.
结果rd.yu have the crrect rec