鱼C论坛

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

用getchar语句能否实现?

[复制链接]
头像被屏蔽
发表于 2021-5-22 21:19:46 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-22 21:24:59 | 显示全部楼层
可以的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-22 21:30:34 | 显示全部楼层
我照着打了一遍,是可以的
代码如下
#include <stdio.h>
int main()
{
    char c;
    printf("input a character: ");
    c = getchar();
    if(c<32)
        printf("This is a control character\n");
    else if(c>='0'&&c<='9')
        printf("This is a digit\n");
    else if(c>='A'&&c<='Z')
        printf("This is a capitial letter\n");
    else if(c>='a'&&c<='z')
        printf("This is a small letter\n");
    else
        printf("This is an other character\n");
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-22 22:06:36 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-22 22:07:41 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-22 22:08:54 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-22 22:09:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> 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类型进行比较的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-22 22:14:19 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

嗯 只能准确匹配0-9
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-22 22:18:27 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-22 22:32:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-22 23:21:09 | 显示全部楼层
取每个位的数 + 30h呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-5-23 08:36:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

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

我写了一个差不多的输出的代码,我觉得是可行的
代码如下
#include <stdio.h>
int main()
{
    char num[10];
    int i=0;
    do{
        num[i]=getchar();
    }while(num[i++]!='\n');
    i=0;
    while(num[i]!='\0')
    {
        putchar(num[i++]);
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 11:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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