题目
本题是谭浩强《C程序设计课后习题》题10.11。
题目:
从键盘输人若干行字符(每行长度不等),输人后把它们存储到一磁盘文件中。再从该文件中读入这些数据,将其中小写字母转换成大写字母后在显示屏上输出。
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj
一、解题思路
思路:
1,写文件,使用gets函数和fprint函数
2,读文件,使用fgets函数,格式(str,总数,fp)
3,编写一个小写转大写的函数
二、代码部分
1.引入库
代码如下(示例):
#include<stdio.h>
2.主函数部分
代码如下(示例):
void toup(char* str)
{
while (*str)
{
if (*str >= 'a' && *str <= 'z')
*str -= 32;
str++;
}
}
int main()
{
FILE* fp = fopen("letter.txt", "w");
if (fp == NULL)
{
printf("open letter erro!");
return -1;
}
char str[128] = { 0 };
while (1)//用于写数据,当输入exit时停止写入
{
printf("请输入字符串(如果输入exit,则退出输入):>");
gets(str);
if (strcmp("exit", str) == 0)
break;
fprintf(fp, "%s\n", str);
}
fclose(fp);
fp = fopen("letter.txt", "r");
if (fp == NULL)
{
printf("open letter erro!");
return -1;
}
while (!feof(fp))//用于读数据,当读到文件末尾efo时结束
{
memset(str, 0, 128);//对str进行初始化.初始化函数。作用是将某一块内存中的内容全部设置为指定的值,这个函数通常为新申请的内存做初始化工作。
fgets(str, 128, fp);
toup(str);
printf("%s", str);
}
fclose(fp);
return 0;
}
三、执行结果
输入:
请输入字符串(如果输入exit,则退出输入):>goodnight
请输入字符串(如果输入exit,则退出输入):>I love YOU
请输入字符串(如果输入exit,则退出输入):>en...
请输入字符串(如果输入exit,则退出输入):>sorry
请输入字符串(如果输入exit,则退出输入):>I erro
请输入字符串(如果输入exit,则退出输入):>goodbye
请输入字符串(如果输入exit,则退出输入):>if Luck,we posisole miss
请输入字符串(如果输入exit,则退出输入):>exit
输出:
GOODNIGHT
I LOVE YOU
EN...
SORRY
I ERRO
GOODBYE
IF LUCK,WE POSISOLE MISS