题目内容
函数ReadDat()的功能是实现从文件IN64.DAT中读取一篇英文文章并存入到字符串数组XX中。请编制函数CharConvA(),该函数的功能是:以行为单位把字符串的最后一个字符的ASCⅡ值右移4位后加最后第二个字符的ASCⅡ值,得到最后一个新的字符,最后第二个字符的ASCⅡ值右移4位后加最后第三个字符的ASCⅡ值,得到最后第二个新的字符,以此类推一直处理到第二个字符,第一个字符的ASCII值加最后一个字符的ASCII值,得到第一个新的字符,得到的新字符分别存放在原字符串对应的位置上,把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT64.DAT中。 注意:部分源程序已给出。 原始文件存放的格式是:每行的宽度小于80个字符,含标点符号和空格。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 [试题程序] #include<stdio.h> #include<string.h> #include<stdlib.h> char XX[50][80]; int maxline=0; int ReadDat(); void WriteDat(); void CharConvA(void) voidmain() system("CLS"); if(ReadDat()) printf("数据文件IN64.DAT不能打开!\n\007"); return; CharConvA(); WriteDat(); int ReadDat(void) FILE*fp; int i=0; char*p; if((fP=fopen("IN64.DAT","r"))==NULL) return 1; while(fgets(xx[i],80,fp)!=NULL) P=strchr(xx[i],’\n’); if(P)*P=0; i++; maxline=i; fclose(fp); return 0; void WriteDat() FILE*fp: int i; system("CLS"); fp=fopen("OUT64.DAT","w"); for(i=0;i<maxline;i++) printf("%s\n",xx[i]); fprintf(fp,"%s\n",xx[i]); fclose(fp);
查看答案
搜索结果不匹配?点我反馈
更多问题