作者:不详 来源:互联网   酷勤网收集 2008-03-23

摘要
  以行为单位把字符串中的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个亲朋字符,第二个字符的ASCII值加第三个字符的ASCII值,得到第二个新字符,依此类推一直处理到最后第二个字符,最后一个字符的ASCII值加原第一个字符的ASCII值

    题目17:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中。请编制函数CHA(),其函数功能是:以行为单位把字符串中的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个亲朋字符,第二个字符的ASCII值加第三个字符的ASCII值,得到第二个新字符,依此类推一直处理到最后第二个字符,最后一个字符的ASCII值加原第一个字符的ASCII值,得到最后一个新的字符,得到的新字符分别存放在原字符串对应的位置上。最后把已处理的字符串逆转后按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT9.DAT中.原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格.
    注意:部分源程序已给出。
    请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。
-----------------------
void ChA(void) /*标准答案*/
  {int I,j,k,str;
   char ch;
   for(I=0;I<maxline;I++)
{str=strlen(xx[I]);
 ch=xx[I][0];
 for(j=0;j<str-1;j++)
 xx[I][j]+=xx[I][j+1];
 xx[I][str-1]+=ch;
 for(j=0,k=str-1;j<str/2;j++,k--)
  {ch=xx[I][j];
   xx[I][j]=xx[I][k];
   xx[I][k]=ch;}
}
  } 
void ChA(void)
{ int i,j;
 char p,c;
 for(i=0;i<maxline;i++)
 { p=xx[i][0];
   c=xx[i][strlen(xx[i])-1];
   for(j=0;j<strlen(xx[i])-1;j++)
   xx[i][j]+=xx[i][j+1];
   xx[i][strlen(xx[i])-1]=p+c;
   strrev(xx[i]);      }

}

分类: 题库中心 南开100题

上一篇:题目16:编制函数StrCharJR()处理字符串   下一篇:题目74:编制函数STRCHARJL()处理字符串