鱼C论坛

 找回密码
 立即注册
查看: 1933|回复: 4

[已解决]有没有一种方法可以输入数字和字母是不同的走向

[复制链接]
发表于 2021-4-22 20:02:11 | 显示全部楼层    本楼为最佳答案   
本帖最后由 yuxijian2020 于 2021-4-22 20:04 编辑

第一题整合判断就行了
大写字母  0x4a ~ 0x5a  输入这个区间的就转小写
小写字母  0x61 ~ 0x7a  输入这个区间的就转大写
数字字符  0x30 ~ 0x39 输入1 ~ 9  直接加 0x30就转成字符了

  1. void ChangerAndPrint()
  2. {
  3.     printf_s("请输入字符或数字:");
  4.     char c = getchar();

  5.     if (c >= 'A' && c <= 'Z')
  6.     {
  7.         c += 0x20;
  8.         printf_s("输入的是大写字母!\n");
  9.     }
  10.     else if (c >= 'a' && c <= 'Z')
  11.     {
  12.         c -= 0x20;
  13.         printf_s("输入的是小写字母!\n");
  14.     }
  15.     else if (c <= '0' || c >= '9')
  16.     {
  17.         printf_s("输入的是数字\n");
  18.     }
  19.     else
  20.     {
  21.         printf_s("输入的不是数字也不是字母!\n");
  22.     }

  23.     printf_s("转换后为: %c", c);
  24. }
复制代码


第二题   是因为你限定了 %d   就是说 scanf 只读取整数
你输入"-0-0-00--"   scanf 只读取了 -0   后面的字符因为不是整数了  还存在于缓冲区
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-22 22:53:59 | 显示全部楼层
小小心心 发表于 2021-4-22 21:44
我改了一下else if (c = '9')改成&&,但是这样输入数字也会导致显示"输入的不是数字也不是字母!\n
  1. else if (c <= '0' || c >= '9')
复制代码


条件错了 不好意思

  1. else if (c >= '0' || c <= '9')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-4 06:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表