起因:

牛客网一道题,需要按行输入多组字母,然后按行输出其转换大小写后的字母,我们来探讨一下。


分析:

有两个要点需要注意,一是要按行多组输入,二是要字母大小写转换。首先是按行多组输入,我们可以用while循环获取多组输入,scanf()或者getchar()函数可以获取输入值;然后字母的大小写转换需要根据ASCLL表来分析,我们可以在表中看到大小写字母的十进制其实是相差32的,因此只需要将输入的字母做十进制±32运算即可实现转换。

在此你可能有疑问,字母属于char类型,32是int类型,这能运算吗?
答案是可以的。在运算的时候,char类型是可以转换为int类型的(计算过程中自定进行转换,不需要强制转换的)。计算机通过查找对应字符变量值的ASCII值(十进制),利用其在ASCII里的对应值进行加减运算,当然两个char类型的运算也需要进行这样的转换。


解决方案:

解释完原理后我们就可以用代码实现啦

方法一: 我们用scanf()函数接收输入,然后printf输出

int main()
{int input = 0;while ((scanf("%c", &input)) != EOF){/*if (input = '\n')continue;*/
//如果遇到按回车运行程序影响转换的情况,可以加上这条语句,跳过回车字符 '\n'if (input >= 'A' && input <= 'Z'){input = input + 32;printf("%c\n", input);}else if (input >= 'a' && input <= 'z'){input = input - 32;printf("%c\n", input);}}return 0;
}

程序运行后

方法二: 用getchar()函数获取输入,用putchar()输出 可能部分朋友不了解getchar()函数,我们可以看一下库描述


其实简单说就是逐个获取键盘输入的字符,返回的值就是ASCLL码十进制的值,读取错误则返回EOF,putchar()原理是类似的,下面是实现:

int main()
{char input = 0;while ((input = getchar()) != EOF){if (input >= 'A' && input <= 'Z'){input = input + 32;putchar(input);printf("\n");}else if (input >= 'a' && input <= 'z'){input = input - 32;putchar(input);printf("\n");}}return 0;
}

运行结果

c语言中字母大小写转换的两种办法相关推荐

  1. c语言中字母大写转小写,C语言中字母大小写转换的简单操作

    大写字母要转换小写字母,要怎么操作呢?而在C语言开发中,我们经常会遇到这样或者那样的问题,别着急,爱站技术频道为你细细道来C语言中字母大小写转换的简单操作. C语言tolower()函数:将大写字母转 ...

  2. latex中字母大小写转换实践

    latex中字母大小写转换实践 要点概览 目的 实现常用的字母大小写转换,可以用于常规的字符串处理以及biblatex参考文献样式定义 全部大写/全部小写 句首大写(句首字母大写其它不变,句首字母大写 ...

  3. eclipse中字母大小写转换快捷键(备忘)

    eclipse中字母大小写转换快捷键(备忘) Ctrl+Shift+X 转为大写 Ctrl+Shift+Y 转为小写 该快捷键是可以在eclipse中自定义的,但并不推荐自定义:

  4. c语言中的普通字符包括什么,【判断题】C语言中的字符常量通常有两种形式:普通字符和转义字符。...

    [判断题]C语言中的字符常量通常有两种形式:普通字符和转义字符. 更多相关问题 ---Can you speak French?---Yes, but only____.A.a littleB.lit ...

  5. 指针数组下标JAVA_Java语言中可用下标和指针两种方式表示数组元素。

    [判断题]一行可以写多条预处理命令 [判断题]如果一个java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名一致. [判断题]Protected类型的实例变量只能在本类中使用,其他类中不可 ...

  6. c语言 字符串字母大小写转换

    本题要求编写程序,对一个以"#"结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出. 输入格式: 输入为一个以"#"结 ...

  7. php将字母大写转小写,php中字母大小写转换函数_PHP教程 - strtolower

    ...注解.可以通过 commit记录查看已添加的注解. strtolower string strtolower ( string $string ) 将字符串转换成小写字符. strtoupper ...

  8. Oracle 中字母大小写转换

    开发工具与关键技术:Oracle sql * plus PLSQL Developer 作者:唐国铭 撰写时间:2019年03月31日 在做练习过程中总会遇到一些需求是获取某一字段里的某一个字母,无论 ...

  9. Eclipse中字母大小写转换,及常用快捷键

    大写转换小写 ctrl+shift+y 小写转换大写 ctrl+shift+x 其他常用的快捷键  1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了.这组快捷键可以让你打 ...

最新文章

  1. php图片发送另一台,phpcurl发送图片处理
  2. mysql正则表达式配置_G. MySQL正则表达式
  3. 哈工大华中科技大学计算机学院官网,我国重点大学排名盘点,哈工大重回前十,北理工只排十四...
  4. android实现欢迎启动界面
  5. Spark之RDD理论篇
  6. Tachyou alluxio初识
  7. 前端系统化学习【JS篇】:(四-3)基本数据类型之Boolean篇
  8. TimeQuest就一定要搞定——时序分析基本公式
  9. 探索 Rust 异步简化编程
  10. Twitter 有权删除去世用户的账号吗?
  11. 卸载mysql数据库报错_完全卸载mysql数据库图文教程
  12. C语言编程题如何提交源程序,c语言课后习题源程序.doc
  13. intel D435i 双目相机 拍摄图片并保存 python调用示例
  14. Django-3-网址和网页内容的”红娘“-路由配置
  15. burpsuite安装注册
  16. 2020年中国研究生数学建模竞赛C题
  17. Java的字符串转int算法
  18. android相机保存文件为空,android 调用系统相机拍照,返回的data为null
  19. FTP 的安装与配置
  20. qt unable to creat a debugging问题

热门文章

  1. 【中国矿业大学】考研初试复试资料分享
  2. C语言 一元三次方程 二分法 切线法
  3. 06_MySQL笔记-数据类型-字段属性-存储引擎-字符集-创建新表-数据库建模
  4. 模拟IC与数字IC设计该怎么选?哪个岗位薪资高?
  5. Lr 2020最新版下载地址 一键安装Windows
  6. 实现小程序的图文混排功能
  7. OpenCV学习——绘制OpenCV徽标
  8. ❤️数据可视化❤️:基于Echarts + GeoJson实现的地图视觉映射散点(气泡)组件【8】 - 河北省
  9. Live Home 3D Pro Mac版 v4.1.3 强大高级的室内设计软件
  10. 用无网格有限元法转动曲柄