函數ReadDat( )的功能是實現(xiàn)從文件IN59.DAT中讀取一篇英文文章存入到字符串數組xx中。請編制函數CovertCharD( ),該函數的功能是:以行為單位把字符串中的所有小寫字母改成該字母的上一個字母,如果是字母a,則改成字母z。大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他字符不變。把已處理的字符串仍按行重新存入字符串數組xx中,最后調用函數WriteDat( )把結果xx輸出到文件OUT59.DAT中。
例如:原文 Adb Bcdza
abck LLhj
結果 Aca Bbcyz,
zabj LLgi
原始數據文件存放的格式是:每行的寬度均小于80個字符,含標點符號和空格。
注意:部分源程序已給出。
請勿改動主函數main( )、讀函數ReadDat( )和寫函數WriteDat( )的內容。
試題程序:
#include
#include
#include
char xx[50][80];
int maxline=0;
int ReadDat(void);
void WriteDat(void);
void CovertCharD()
{
}
void main()
{
system("CLS");
if(ReadDat())
{
printf("數據文件IN59.DAT不能打開\n\007");
return;
}
CovertCharD();
WriteDat();
}
int ReadDat()
{
FILE *fp;
int i=0;
char *p;
if((fp=fopen("IN59.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(void )
{
FILE *fp;
int i;
system("CLS");
fp=fopen("OUT59.DAT","w");
for(i=0;i { printf("%s\n",xx[i]); fprintf(fp,"%s\n",xx[i]); } fclose(fp); }
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |