鱼C论坛

 找回密码
 立即注册
查看: 3645|回复: 15

用getchar语句能否实现?

[复制链接]
头像被屏蔽
发表于 2021-5-22 21:19:46 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-5-22 21:24:59 | 显示全部楼层
可以的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-22 21:30:34 | 显示全部楼层
我照着打了一遍,是可以的
代码如下
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     char c;
  5.     printf("input a character: ");
  6.     c = getchar();
  7.     if(c<32)
  8.         printf("This is a control character\n");
  9.     else if(c>='0'&&c<='9')
  10.         printf("This is a digit\n");
  11.     else if(c>='A'&&c<='Z')
  12.         printf("This is a capitial letter\n");
  13.     else if(c>='a'&&c<='z')
  14.         printf("This is a small letter\n");
  15.     else
  16.         printf("This is an other character\n");
  17.     return 0;
  18. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-22 22:06:36 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-22 22:07:41 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-22 22:08:54 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-22 22:09:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-22 22:11:16 | 显示全部楼层
无极空间 发表于 2021-5-22 22:07
那我为啥输入65,并不是输出This is a captial letter

因为getchar()接收的是你输入的第一个字符'6'
所以它会输出--》This is a digit
之所以能和32比较是因为--》char类型是特殊的整型所以是可以将char转换为int类型进行比较的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-22 22:14:19 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-22 22:15:38 | 显示全部楼层
无极空间 发表于 2021-5-22 22:14
所以这个程序没有错误,但不能实现输入数值准确匹配输出结果

嗯 只能准确匹配0-9
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-22 22:18:27 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-22 22:23:41 | 显示全部楼层
无极空间 发表于 2021-5-22 22:18
好的吧,那足下觉得怎样就可以实现我程序中的要求呢?

我觉得用getchar()来判断你输入的两位数不合适
用scanf("%d",&nun);这种吧
然后前面定义int num;
然后判断,然后输出你想输出的内容就行了。
我的意思是说:
用geichar()判断输入的字符是什么
用scanf()判断输入的数据是什么
即可
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-22 22:32:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-22 23:21:09 | 显示全部楼层
取每个位的数 + 30h呗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-23 08:36:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-23 10:38:59 | 显示全部楼层
无极空间 发表于 2021-5-22 22:32
可是这要怎么实现数据到字符的转换呢

你如果想输入一个多位的整数型的字符
然后判断这个多位整数型字符在什么范围的话,也可以不用转为整型我感觉

我觉得用一个字符型的数组即可
用下标的方式来判断即可啊

我写了一个差不多的输出的代码,我觉得是可行的
代码如下
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     char num[10];
  5.     int i=0;
  6.     do{
  7.         num[i]=getchar();
  8.     }while(num[i++]!='\n');
  9.     i=0;
  10.     while(num[i]!='\0')
  11.     {
  12.         putchar(num[i++]);
  13.     }
  14.     return 0;
  15. }
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-12 20:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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