习题10.11 从键盘输入若干行字符(每行长度不等),输入后把它们存储到一磁盘文件中。再从该文件中读入这些数据,将其中小写字母转换成大写字母后在显示屏上输出
程序员文章站
2022-05-28 20:18:09
...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
FILE *fp;
char str[5][20];
char filename[10];
int i,j;
//从键盘输入5行长度不等的字符串
printf("请依次输入5行字符串:\n");
for(i=0;i<5;i++)
{
printf("No.%d:",i+1);
gets(str[i]);
}
//创建磁盘文件并将数据写入文件
printf("\n请输入存储的文件名:");
scanf("%s",filename);
putchar(10);
if((fp=fopen(filename,"w"))==NULL)
{
printf("文件打开失败!");
exit (0);
}
for(i=0;i<5;i++)
{
fprintf(fp,"%s",str[i]);
if(i!=4) fputs("\n",fp);
}
fclose(fp);
//再次打开磁盘文件并将文件数据反读至str字符串数组
if((fp=fopen(filename,"r"))==NULL)
{
printf("文件打开失败!");
exit (0);
}
for(i=0;i<5;i++)
{
fscanf(fp,"%s",&str[i]);
}
fclose(fp);
//对数组中所有小写字母转换为大写字母
for(i=0;i<5;i++)
{
for(j=0;str[i][j]!='\0';j++)
{
if(str[i][j]>='a' && str[i][j]<='z')
{
str[i][j]=str[i][j]-32;
}
}
}
//输出转换后的字符串
for(i=0;i<5;i++)
printf("No.%d-->%s\n",i+1,str[i]);
return 0;
}
上一篇: Android
下一篇: sublime匹配汉字