100题第17题
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][j]=xx[I][j+1]+xx[I][j]么?*/
xx[I][str-1]+=ch; /*是xx[I][str-1]=ch+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;
}
}
}