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

摘要
  函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS1.DAT中。

    题目8:函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS1.DAT中。
    替代关系:f(p)=p*11 mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。
    注意:部分源程序已给出。原始数据文件存放的格式是:每行的宽度均小于80个字符。
    请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
------------------------------
void encryptChar() /*标准答案*/
{int I;
 char *pf;
 for(I=0;I<maxline;I++)
  {pf=xx[I];
   while(*pf!=0)
   {if(*pf*11%256>130||*pf*11%256<=32);
  else
*pf=*pf*11%256;
   pf++;  }
  }
}
或者:
void encryptChar()
{ int i,j;
 char *p;
 for(i=0;i<maxline;i++)
  for(j=0;j<strlen(xx[i]);j++)
  { p=(xx[i][j]*11)%256;
    if(p<=32||p>130)
    ;
else xx[i][j]=p; }
}

分类: 题库中心 南开100题

上一篇:题目87:找出满足千位数上的数加个位数等于百位数上的数加十位数上的数,并求平均值   下一篇:题目18:按给定的不同于题目8中替代关系对数组中的所有字符进行替代,仍存入数组的对应的位置上