100题第3道
3:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数STROR(),其函数功能是:以行为单位把字符串中的所有小写字母O左边的字符串内容移到该串的右边存放,然后并把小写字母O删除,余下的字符串内容移到已处理字符串的左边存放.最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT.DAT中.例如:原文:You can create an index on any field.
you have the correct record.
结果: n any field.You can create an index
rd.yu have the crrect rec
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格.
--------------类型:字符串(单词)的倒置和删除。
void StrOR(void)
{int I,j,k,index,strl;
char ch;
for(I=0;I<maxline;I++) /*maxline 是已经定义了的变量,表示该英文段落的行数。*/
{strl=strlen(xx[I]); /*strlen()函数用来求得每行的字符数。*/
index=strl; /*将strl赋值给index,我搞不懂这里为什么还要把值赋给它呢?下面根本没用到index*/
for(j=0;j<strl;j++) /*循环嵌套*/
if(xx[I][j]=='o') /*考察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;
}
}
}