急!!!请帮忙解读一下!!

来源:百度知道 编辑:UC知道 时间:2024/05/05 20:04:31
函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。

void StrOR(void)

{int i,righto,j,s,k;

char tem[80];

for(i=0;i<maxline;i++) /*倒序循环*/

for(j=strlen(xx[i])-1;j>=0;j--)

{ k=0;
memset(tem,0,80); /*初始化字符串数组tem*/

if(xx[i][j]=='o') /*如果当前字符为'o',进入以下语句*/

{righto=j; /*则将此字符中位置j的值赋给righto*/

for(s=righto+1;s<strlen(xx[i]);s++)

tem[k++]=xx[i][s]; /*从righto的下一跳开始将其后所有的字符都存入到tem中*/

for(s=0;s<righto;s++) /*从当前行首部开始到出现字符'o'的位置(righoto)之前开始循环*/

if(xx[i][s]!='o') tem[k++]=xx[i][s]; /*将不是字符'o'的字符全存入到tem中*/

strcpy(xx[i],tem); /*将当前已处理的字符重新存入当前行xx*/

}

else continue;

memset 是一个库函数名,原型如下:
void *memset(void *s, int c, size_t n) 用途是将字符串中的n个字节内容设置为c,在你这里就是将tem数组中的80个字节设置为0,也就是初始化数组全部为0.
righto 用于记录小写字母o的位置,j是用循环指向一行数据中各个数据的变量。k用来记录在一行数据中需要移动的数据的个数。

同上