C语言实现字母的大写转换成小写
C语言实现字母的大写转换成小写
- 1 问题描述:
- 2 程序代码:
- 2.1 代码分析:
- 3 改进
- 3.1 程序测试结果
- 参考资料
1 问题描述:
程序功能:实现字母的大小写转换。输入一个大写字母,接着按下回车,第二行就输出小写字母。注意:每次只能输入一个字母,否则出错。
编程软件:visual studio 2019
2 程序代码:
代码来源见链接:1
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {char ch = 0;//循环多次读入,利用gethar消去读入的换行符while(scanf("%c", &ch) != EOF) {getchar();//ch+32即为小写字母printf("%c\n", ch+32);}
}
2.1 代码分析:
scanf首先接收一个字符,赋值给ch,当scanf函数的返回值为EOF时,循环终止,否则程序会一直循环输入输出。那么,如果我们想终止程序,有什么办法可以让scanf的返回值为EOF呢?下面举例分析。
假设输入一个字符A,并按下回车,格式如下图所示
A被scanf接收,并赋值给ch,回车被getchar()接收,其中回车是换行符,也属于字符,所以,如果不用getchar处理换行符,在下一次循环时,回车被当做字符赋值给ch,进而导致输出错误的结果。你可以试着把 getchar() 去掉,运行一下,看看会出现什么结果。程序中的EOF 是end of file的缩写,是定义在头文件stdio.h的一个宏,它的值为-1,定义格式为:#define EOF (-1))2
对于printf("%c\n", ch+32);
因为大写和小写字母的ASCII码值相差32,例如A的ASCII码值为65,a的ASCII码值为97。所以在ch上加上32,就会输出其小写格式。
当然也可以使用tolower等库函数转换大小写1,程序如下。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>int main() {char ch = 0;//该部分如上述所示while (scanf("%c", &ch) != EOF) {getchar();//调用内置的tolower函数进行转换printf("%c\n", tolower(ch));}
}
3 改进
对于以上程序,如果不小心连续输入回车,程序会出错,针对这个问题进行改进,并增加了程序终止功能,当按下Ctrl+Z时,程序终止。上面两个程序连续输入两次Ctrl+Z时,也会退出循环。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>int main()
{char a;while ((a= getchar()) != EOF)//getchar()在键盘输入ctrl+z 时,能获得EOF {getchar(); //循环多次读入,利用gethar消去读入的换行符if (a == '\n')printf("\n");elseprintf("%c\n", a + 32);}return 0;
}
3.1 程序测试结果
运行以上程序,可以发现,即使连续输入换行符,也不会输出错误的结果。如果想要程序结束,则输入Ctrl+Z3,可以看到一个^Z字符,再按下回车,程序结束。
参考资料
大小写转换_牛客网 ↩︎ ↩︎
C语言中EOF到底是什么? ↩︎
c语言scanf返回值 ↩︎
C语言实现字母的大写转换成小写相关推荐
- 将字符串中大写转换成小写,小写转换成大写。基础题目
大小写转换 String url="asdfaDFSFDSoiuonmlWERVuojln" 将以上字符串大写转换成小写,小写转换成大写. 首先转换成char 数组char[] s ...
- 从键盘输入一个大写字母,然后转换成小写字母输出。
#include<stdio.h> void main() {char ch1,ch2; printf("请输入一个大写字母:"): ch1=getchar(); ch ...
- VB 录入字母大写自动转换成小写及小写自动转换成大写
要自动转换大小写,很多人首先想到的一定是 UCase$ 及 LCase$,但是要使用这二个函数,一定不可以在 Key_Press 事件中使用,否则您若输入<abc>,结果却变成<CB ...
- java 首字母小写_java实现将字符串中首字母转换成大写,其它全部转换成小写的方法示例...
本文实例讲述了java实现将字符串中首字母转换成大写,其它全部转换成小写的方法.分享给大家供大家参考,具体如下: public class TestSubstring { public static ...
- 输入一个字符,判断其是否为大写字母,如果是,将他转换成小写字母;如果不是,不转换。然后输出最后得到的字符。
输入一个字符,判断其是否为大写字母,如果是,将他转换成小写字母:如果不是,不转换.然后输出最后得到的字符. 代码如下: 1 #include<stdio.h>2 int main()3 { ...
- 将大写字母转换为小写字母(将该字符串中的大写字母转换成小写字母,之后返回新的字符串。)
将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 示例 1: 输入: "Hello" 输出: "hello" 示例 2: 输入: "here ...
- 输入一行字符,将其中的大写字母转换成小写字母,其中的小写字母转换成大写字母C++--tolower、isalpha等函数的使用
字母大小写转换 [问题描述] 输入一行字符,将其中的大写字母转换成小写字母,其中的小写字母转换成大写字母,然后输出. [输入形式] 输入一行可显示的字符,回车结束. [输出形式] 输出一行字符,其中输 ...
- python初学 从键盘上输入一个字母,如果是小写字母,则转换成大写字母,如果是大写字母,则直接输出
python初学者的基础问题 从键盘上输入一个字母,如果是小写字母,则转换成大写字母,如果是大写字母,则直接输出 提示:以下题仅是作为初识python的浅浅尝试,若有更好解法欢迎评论区交流 拿到题,我 ...
- 输入2个大写英文字母,调用函数CharSwap将其转换成小写字母并交换
要将两个大写英文字母转换成小写字母并交换,可以使用以下代码: def CharSwap(ch1, ch2):ch1 = ch1.lower()ch2 = ch2.lower()ch1, ch2 = c ...
最新文章
- Android自我修炼之路(欢迎拍砖)
- 特质波动率python
- 第三章 python webdriver API(一)——浏览器操作
- python竞赛试题及答案_Python全国少儿编程竞赛参赛作品《自主数学练习小工具》解析...
- 《java语法实例2~15章》
- php服务器队列执行,lnmp php添加队列服务器的配置
- 【图像分割应用】设备自动化(一)——自动驾驶
- python sanic orm_Sanic + 前端MVVM 一种新一代Python高性能全栈开发实践
- [C++]有关深复制与copy constructor的一些问题与实例
- (转)学习密度与专注力
- MAC查找JDK的路径
- Oracle数据库逻辑存储结构管理相关问题与解决
- 斯坦福大学公开课机器学习:advice for applying machine learning | learning curves (改进学习算法:高偏差和高方差与学习曲线的关系)...
- centos7.5安装Jenkins
- 如何用Nuxt.js构建项目,SSR官网项目搭建流程
- 《诗的格律》学习简要
- win10笔记本cpu不高内存也不高但就是很卡,一个办法帮你解决!
- 联想小新潮7000-13安装黑苹果笔记,无需无线网卡(无需U盘+win双系统+opencore)
- html内边距居中,HTML中详述外边距样式属性(margin)与内边距样式属性(padding)...
- 卷积神经网络和循环神经网络的思想内核是什么
热门文章
- xmind可以画流程图吗_怎样用XMind方便地制作流程图
- Apache ServiceComb Kie | 一个语义型配置中心
- linux下进程管理的原理,Linux进程管理:supervisor和nohup原理及使用
- MyBatis之动态SQL
- HCNA网络技术基础学习
- KSQL DB 学习笔记1
- css怎么画小方块,CSS3 小方块矩阵变换动画
- Windows下Qt+minGW+CMake+opencv配置--方法总结、文件分享与排错分享
- 计算机默认切换输入法的快捷键是,解决了输入法默认与快速切换问题!Unix系统 -电脑资料...
- 基于java的毕业设计选题系统的设计与实现