本帖最后由 yuxijian2020 于 2021-4-22 20:04 编辑
第一题整合判断就行了
大写字母 0x4a ~ 0x5a 输入这个区间的就转小写
小写字母 0x61 ~ 0x7a 输入这个区间的就转大写
数字字符 0x30 ~ 0x39 输入1 ~ 9 直接加 0x30就转成字符了
- void ChangerAndPrint()
- {
- printf_s("请输入字符或数字:");
- char c = getchar();
- if (c >= 'A' && c <= 'Z')
- {
- c += 0x20;
- printf_s("输入的是大写字母!\n");
- }
- else if (c >= 'a' && c <= 'Z')
- {
- c -= 0x20;
- printf_s("输入的是小写字母!\n");
- }
- else if (c <= '0' || c >= '9')
- {
- printf_s("输入的是数字\n");
- }
- else
- {
- printf_s("输入的不是数字也不是字母!\n");
- }
- printf_s("转换后为: %c", c);
- }
复制代码
第二题 是因为你限定了 %d 就是说 scanf 只读取整数
你输入"-0-0-00--" scanf 只读取了 -0 后面的字符因为不是整数了 还存在于缓冲区