题10.11:从键盘输人若干行字符(每行长度不等),输人后把它们存储到一磁盘文件中。再从该文件中读入这些数据,将其中小写字母转换成大写字母后在显示屏上输出。

题目

本题是谭浩强《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


  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立志冲海大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值