CCCS 发表于 2021-3-7 00:40:13

输入字符判断字母、数字、其它字符数量中字符输入问题

本帖最后由 CCCS 于 2021-3-7 00:50 编辑

#include<stdio.h>
int main()
{
        int i,n;
    char c;
        int letters=0,digit=0,others=0;
        n = (int)getchar();                //输入循环次数 n
        for(i=1;i<=n;i++)
        {
                c = getchar();
       if(c>='a'&&c<='z'||c>='A'&&c<='Z')                        //判断是否为字母
                letters++;        //字母数量加一
               else if(c>='0'&&c<='9')                                                //判断是否为数字
                          digit++;        //数字数量加一
               else
                   others++;        //其它字符加一
        }       
       printf("letter=%d, digit=%d, other=%d\n",letters,digit,others);       
        return 0;
}
10                //输入循环次数为 n = 10
aZ &                //}这里的输入(字母、数字、空格、回车)
09 Az        //}已经有十个,但是回车后还是不能够输出还需要继续输入是为什么呢???
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
letter=4, digit=24, other=21
Press any key to continue

洋洋痒 发表于 2021-3-7 09:57:58

#include<stdio.h>
int main()
{
      int i,n;
      char c=' ';
      int letters=0,digit=0,others=0;
      printf("请输入统计个数");
      n = (int)getchar()-48;//输入循环次数 n
      for(i=1;i<=n;i++)
      {
                while((c= getchar())=='\n')
                {

                }
                printf("%c\n",c);
                if((c>='a')&&(c<='z')||(c>='A')&&(c<='Z'))                        //判断是否为字母
                  letters++;      //字母数量加一
                else if((c>='0')&&(c<='9'))                                                //判断是否为数字
                  digit++;      //数字数量加一
                else
                  others++;
                      //其它字符加一
      }
         printf("letter=%d, digit=%d, other=%d\n",letters,digit,others);
      return 0;
}

洋洋痒 发表于 2021-3-7 10:07:40

1 c没必要弄成数组你要是非得弄成数组下边的c是不能单独用的,要写成c的格式
2getchar()输入的数字是字符,ascii码是48-57转换成整数也是48-57,所以减去48就变成和实际输入的数一样的数
3getchar()是会把缓冲区的数据传给c的,具体的可以百度getchar缓冲区,网上有一堆解释,所以要用while把缓冲区的回车去掉

如果觉得有帮助并且看懂了的话请设个最佳

CCCS 发表于 2021-3-8 22:55:02

洋洋痒 发表于 2021-3-7 10:07
1 c没必要弄成数组你要是非得弄成数组下边的c是不能单独用的,要写成c的格式
2getchar()输入的数字是字 ...

谢谢
页: [1]
查看完整版本: 输入字符判断字母、数字、其它字符数量中字符输入问题