当前位置: 首页 > news >正文

编程从键盘输入一个大写英文字符,将其转换为小写字符显示并显示出它的十进制,十六的 ASCI码。

前言:

练习c语言

 本来想写高级一点,奈何.,.......

本来想判断不是大写,就让用户重新输入的, 我记得比特老师讲过,要不嗯

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
//1.编程从键盘输入一个大写英文字符,将其转换为小写字符显示并显示出它的十进制,十六的 ASCI码。(10分)

int main()
{
	char upper = '\0';  // 初始化为空字符
	char lower = '\0';  // 初始化为空字符

	scanf("%c", &lower);

		if (lower > 'a' && lower < 'z')
		{
			//则判断为小写字母,则输出错误,提示重新输入
			printf("请输入小写字母\n");
			
		}
		else if (lower >= 'A' && lower < 'Z')
		{
			//转换为小写字母
			upper = lower + 32;
		}
		else
			printf("输入错误,请重新输入");



	printf("大写字母为:%c \n", upper);
	printf("十进制为:%d \n", upper);
	printf("十六进制为:%x \n", upper);
	return 0;
}

好了,加了一个判断条件

!judge 不等于0就为真,就继续执行

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
//1.编程从键盘输入一个大写英文字符,将其转换为小写字符显示并显示出它的十进制,十六的 ASCI码。(10分)

int main()
{
	char upper = '\0';  // 初始化为空字符
	char lower = '\0';  // 初始化为空字符
	int judge = 0;

	while (!judge)
	{
		scanf("%c", &lower);
		if (lower >= 'a' && lower <= 'z')
		{
			//则判断为小写字母,则输出错误,提示重新输入
			printf("请输入小写字母\n");
			judge = 0;   //让条件为为假,就是判断为真,继续执行当前循环

		}
		else if (lower >= 'A' && lower <= 'Z')
		{
			//转换为小写字母
			upper = lower + 32;
			judge = 1;     //跳出循环
		}
		else
		{
			printf("输入错误,请重新输入\n");
			judge = 0;  //让条件为为假,就是判断为真,继续执行当前循环
		}


	}

	printf("大写字母为:%c \n", upper);
	printf("十进制为:%d \n", upper);
	printf("十六进制为:%x \n", upper);
	return 0;
}

出现了这个错误,就是有两个字符,有一个字符,还有一个\n,所以需要清空缓存区

改进

加一个清空缓存区的操作

while (getchar() != '\n');

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
//1.编程从键盘输入一个大写英文字符,将其转换为小写字符显示并显示出它的十进制,十六的 ASCI码。(10分)

int main()
{
	char upper = '\0';  // 初始化为空字符
	char lower = '\0';  // 初始化为空字符
	int judge = 0;

	while (!judge)
	{
		scanf("%c", &lower);
		if (lower >= 'a' && lower <= 'z')
		{
			//则判断为小写字母,则输出错误,提示重新输入
			printf("请输入大写字母\n");
			judge = 0;   //让条件为为假,就是判断为真,继续执行当前循环

		}
		else if (lower >= 'A' && lower <= 'Z')
		{
			//转换为小写字母
			upper = lower + 32;
			judge = 1;     //跳出循环
		}
		else
		{
			printf("输入错误,请重新输入\n");
			judge = 0;  //让条件为为假,就是判断为真,继续执行当前循环
		}

		// 清空输入缓冲区,防止回车键影响下次输入
		while (getchar() != '\n');

	}

	printf("大写字母为:%c \n", upper);
	printf("十进制为:%d \n", upper);
	printf("十六进制为:%x \n", upper);   //%x指的是16进制的数字
	return 0;
}

相关文章:

  • Kubernetes集群中部署SonarQube服务
  • Gitee上库常用git命令
  • Babel 从入门到精通(四):@babel/template的应用实例与最佳实践
  • 【JavaEE】springMVC返回Http响应
  • 【负载均衡系列】Nginx
  • 【例6.5】活动选择(信息学奥赛一本通-1323)
  • 如何拆解模糊需求管理
  • 【C语言】自定义数据类型:联合体和枚举
  • Java Collection API增强功能系列之二 List.of、Set.of、Map.of
  • 《Python全栈开发》第12课:RESTful API设计 - 构建现代化接口
  • ArrayList<E>案例//定义一个方法,将价格低于3000的手机信息返回
  • 0324-项目
  • 【蓝桥杯速成】| 11.回溯 之 子集问题
  • SpringBoot星之语明星周边产品销售网站设计与实现
  • 内存管理模块设计与实现
  • 单片机的时钟输出功能-MCO输出(7)
  • Android 13深度定制:揭秘类MIUI全面屏手势返回动效的架构级实现
  • 零知识证明:区块链隐私保护的变革力量
  • python人脸检测、人脸识别、活体检测入门学习教程
  • Java 中调用语言模型(如 OpenAI、阿里云通义千问、Hugging Face 等)API 的详细步骤和示例代码,涵盖常见场景及注意事项
  • 夜读丨喜马拉雅山的背夫
  • 江西暴雨强对流明显,专家:落雨区高度重叠,地质灾害风险高
  • 2024年上市公司合计实现营业收入71.98万亿元
  • 青岛双星名人集团管理权之争:公司迁址,管理层更迭
  • 北上广深均宣布下调个人住房公积金贷款利率
  • 优化网络营商环境,上海严厉打击涉企网络谣言、黑灰产等违法犯罪