1、获取文件属性(检查文件):stat()

struct stat buf_stat;

stat("temp.txt", &buf_stat);// #include <sys/stat.h>

// buf_stat.st_size

2、打开文件:fopen()

FILE *fp;

fp = fopen("temp.txt", "rb");

3、申请内存,并读取文件内容至该内存空间

char *p;

p = (char *)malloc(sizeof(char) * (buf_stat.st_size + 1));// #include <stdlib.h>

len = fread(p, sizeof(char), buf_stat.st_size, fp);

*(p + len) = '\0';

4、逐个字符地输出文件内容,并将小写字母转为大写

char * q = p;
        while(*q != '\0')
        {
                if(('a'<=*q) && (*q<='z'))
                        *q -= 32;
                write(STDOUT_FILENO, q++, 1); // #include <unistd.h>
        }

5、出错处理

fprintf(stderr, "%s\n", strerror(errno));#include <errno.h>

perror("ERROR: ... ");

源代码:

  1 /*2  * FILE: p19_file.c3  * DATE: 201801064  * --------------5  * DESCRIPTION: stat, fopen,6  * malloc, fread, perror, strerror(errno)7  * 读取文件内容,输出时将小写字母转换成大写字母8  */9 10 #include <stdio.h>11 #include <stdlib.h>     // malloc, free12 #include <sys/stat.h>   // stat13 #include <errno.h>      // strerror(errno)14 #include <unistd.h>     // STDOUT_FILENO15 16 int convert(void)17 {18         FILE *fp;19         struct stat buf_stat;20 21         char *p, *q;22         int len;23 24         if(stat("temp.txt", &buf_stat) < 0)25         {26                 printf("%s\n", strerror(errno));27                 return -1;28         }29         fp = fopen("temp.txt", "r");30         if(fp == NULL)31         {32                 printf("%s\n", strerror(errno));33                 return -2;34         }35         p = (char *)malloc(sizeof(char) * (buf_stat.st_size + 1));36         if(p == NULL)37         {38                 fclose(fp);39                 perror("ERROR: malloc");40                 return -3;41         }42         len = fread(p, sizeof(char), buf_stat.st_size, fp);43         if(len < 0)44         {45                 free(p);46                 fclose(fp);47                 perror("ERROR: fread, fail to read");48                 return -4;49         }50         *(p + len) = '\0';51         q = p;52         while(*q != '\0')53         {54                 if(('a'<=*q) && (*q<='z'))55                         *q -= 32;56                 //printf("%c", *q++);57                 write(STDOUT_FILENO, q++, 1);58         }59         free(p);60         fclose(fp);61         return 0;62 }63 64 int main(void)65 {66         convert();67         return 0;68 }

编译执行:

读取文件并输出,输出时将小写字母转为大写相关推荐

  1. 读取文件并输出,输出时将小写字母转为大写 [ 2 ]

    1 /*2 * FILE: p48_file2lower.c3 * DATE: 201801064 * --------------5 * DESCRIPTION: 读取文件内容,输出时将小写字母转为 ...

  2. 标题python之单个小写字母转为大写字母(洛谷P5704)

    标题python之单个小写字母转为大写字母(洛谷P5704) 字母转换 展开 题目描述 输入一个小写字母,输出其对应的大写字母.例如输入 q[回车] 时,会输出 Q. 输入格式 无 输出格式 无 in ...

  3. php小写字母改成大写,php如何将小写字母转为大写

    [摘要] PHP即"超文本预处理器",是一种通用开源脚本语言.PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言.PHP独特的语法混合了C.Java.Perl以及 ...

  4. excel 扩展插件:方方格子(一键将小写字母转为大写)

    由于不适合使用函数来进行大小写转换,但是目前也没有发现快捷键实现小写字母转成大写字母,为了快速解决这个问题,方方格子的excel插件可以实现该功能,适用于excel2010以上的版本. 1.下载方方格 ...

  5. 文件夹批量改名,将文件夹名称小写字母转为大写字母

    大家在工作中有没有遇到一种情况,大量的文件夹名称英文字母大小写不统一,为了美观方便好整理就一定要对文件夹名称进行统一大写或者统一小写,那么今天小编就分享一个方法教大家批量改名. 第一步,运行[文件批量 ...

  6. php显示文件内容,php读取文件内容_PHP读取文件内容并输出显示

    摘要 腾兴网为您分享:PHP读取文件内容并输出显示,自动刷宝,中信期货,掌上新华,心视界等软件知识,以及3dmax看图软件,方块平台,内蒙社保,b站免流量,南方银河1,爱普生r330打印机驱动,照片分 ...

  7. 已知字符串STRING以‘$’为结束标志;统计其中小写字母的个数,结果送到COUNT单元,并把该字符串中的小写字母变成大写字母,其它字符保持不变。要求分别在屏幕上输出原字符串以及修改后的字符串。

    只为记录汇编作业 题目:已知字符串STRING以'$'为结束标志:统计其中小写字母的个数,结果送到COUNT单元,并把该字符串中的小写字母变成大写字母,其它字符保持不变.要求分别在屏幕上输出原字符串以 ...

  8. c语言输入一个小写字母 将其变为大写,c语言输入一个数减32然后输出和输入小写字母变为大写字母有什么区别?...

    匿名用户 1级 2019-03-19 回答 在 C 语言中区分字母的大小写,利用 ASCII 码中大写字母和小写字母之间的转换关系(差值为 32),可以将小写字母转换为大写字母.编写程序实现,从键盘上 ...

  9. 键盘录入一个字符串,统计该字符串中的大写字母、小写字母、数字字符和其他字符分别有多少个 例如,键盘录入abcABCD12345!@#$%,输出结果为:小写字母有3个,大写字母有4个,数字字符有5个,

    键盘录入一个字符串,统计该字符串中的大写字母.小写字母.数字字符和其他字符分别有多少个 例如,键盘录入abcABCD12345!@#$%&,输出结果为:小写字母有3个,大写字母有4个,数字字符 ...

最新文章

  1. unity3d UGUI Scroll View的使用
  2. python判断操作系统类型
  3. 解决 Vue 重复点击相同路由,出现 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation 问题
  4. [视频]MAC中如何单独放大文本字体
  5. 第三届 Apache Flink 极客挑战赛暨 AAIG CUP:Cluster Serving 概况
  6. Windows下配置网络管理软件--MRTG
  7. BZOJ-4706 B君的多边形 OEIS
  8. word没有显示endnote_word 未显示EndNote工具条的解决方法
  9. target is null for setProperty(null,)错误的引发原因及解决办法
  10. java 中subtract_Java.math.BigDecimal.subtract()方法实例详解
  11. 中文翻唱日语歌曲大全
  12. 【ODYSSEY-STM32MP157C】驱动 UART 读取传感器数据
  13. 取本机IP地址和网卡号
  14. 概率与数理统计-笔记说明
  15. 【数学建模学习笔记【集训十天】之第六天】
  16. 互联网公益进入下半场,为啥2亿人次在支付宝做捐赠?
  17. Python爬虫入门教程 43-100 百思不得姐APP数据-手机APP爬虫部分
  18. 华为S5720交换机配置stelnet和sftp远程服务
  19. 在NUC972上实现websocket客户端
  20. HAL库使用硬件SPI驱动0.96寸OLED stm32F401

热门文章

  1. mysql update join 更新_mysql多表join时候update更新数据的方法 | 很文博客
  2. 没有人能够一味地淡定,没有人能够一味地忍受
  3. 电影《绝望主夫》观后感
  4. 简洁安装HIT-SCIR(哈工大) pyltp
  5. 彻底清除朋友圈内的推荐广告
  6. 黄河金岸诗词大赛获奖作品选登(1)
  7. web中各种命令注入的检测和利用二
  8. Android 系统页面的调用
  9. 如何采集苏宁易购买家订单?
  10. linux:framebuffer驱动之ssd1363驱动和fbtft驱动修改