C语言实现字母大小写互相转换的方法及完整示例代码
C 语言大小写字符互转实现
本内容尤其适合初学者参考。
首先我们需要引入标准输入输出头文件,声明相关变量即可完成实现:
首先引入依赖头文件:#include <stdio.h>
修正后的完整可运行代码如下:
int main() { char convertType, inputChar; printf("请选择转换类型:A. 大写转小写 B. 小写转大写\n"); scanf("%c", &convertType); // 清理输入缓冲区残留的换行符,避免后续读取字符失败 getchar(); switch (convertType) { case 'A': printf("请输入需要转换的大写字符:"); scanf("%c", &inputChar); // 大写ASCII值加32即为对应小写字符 inputChar = inputChar + 32; printf("转换后的小写字符为:%c", inputChar); break; case 'B': printf("请输入需要转换的小写字符:"); scanf("%c", &inputChar); // 小写ASCII值减32即为对应大写字符 inputChar = inputChar - 32; printf("转换后的大写字符为:%c", inputChar); break; default: printf("输入选项非法,请输入大写的A或B"); break; } return 0; }
原示例代码存在几处可优化的问题,调整后运行更稳定:
- 原代码
case 'A'分支未添加break关键字,会出现switch逻辑穿透问题,选择A选项时执行完对应逻辑后还会继续执行B选项的代码 - 原代码大写转小写的计算逻辑写反,大写字符的ASCII值加32才会得到对应小写字符,错误的减32会得到非预期结果
- 原代码
scanf读取转换选项后,输入缓冲区会残留换行符,后续直接读取字符会读到空换行,添加getchar()可清理缓冲区避免该问题 - 原代码未添加
default分支,用户输入非法选项时程序无任何响应,补充后交互更友好
内容的提问来源于stack exchange,提问作者Siddhant
相关产品推荐
相关产品推荐

