C语言-输入10个字符,求其中的字符的类型和数量

2020-01-06  本文已影响0人  广陵周惊蛰

问题描述:输入10个字符,求其中的字符的类型和数量

源代码:

if语句实现:

#include <stdio.h>
int main(void)
{
    int digit,letter,other,block,enter,n;
    char ch;
    int i;
    digit = letter = other = block =enter = 0;
    printf("Enter 10 characters:");
    for(i=1;i<=10;i++){
        ch = getchar();
        if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
            letter++;
        else if(ch>='0'&&ch<='9')
            digit++;
        else if(ch==' ')        //或者ch==32 
            block++;
        else if(ch=='\n')       //或者ch==13
            enter++;
        else 
            other++;
    }
    
    printf("letter=%d,digit=%d,other=%d,block=%d,enter=%d",letter,digit,other,block,enter);
    return 0;
}

switch语句实现:

#include <stdio.h>
int main(void)
{
    int digit,other,block,enter;
    char ch;
    int i;
    digit = other = block =enter = 0;
    printf("Enter 10 characters:");
    for(i=1;i<=10;i++){
        ch = getchar();
        switch (ch){
            case ' ':
                enter++;
                break;
            case '\n':
                block++;
                break;
            case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':case '8':case '9':
                digit++;
                break;
                default:
                    other++;
                    break;
        }
    }
    
    printf("digit=%d,other=%d,block=%d,enter=%d",digit,other,block,enter);
    return 0;
}

运行结果:

判断输入符与数量

程序参数:

问题解决:

如何判断输入的字符是不是空格或回车?

C语言对字符判断是否为空格有两种方式:
1.代码:if(c==' ') printf("c是空格");这种方法比较直观,直接比较当前字符和空格是不是相等,是的话就是空格了。代码演示如下:

2.代码:if(c==32) printf("c是空格");c语言中字符和数值比较,会转换为数值比较,也就是把字符转换为对应的ascii码,空格字符的ascii码是32,直接比较32就行了。代码演示如下:

同理,判断回车也是有两种方式:

1.if(c=='\n') printf("c是回车");

2.if(c=='13') printf("c是回车");

提问:

怎么样可以不用限制10个字符,而是自定义输入的字符数量呢?

上一篇下一篇

猜你喜欢

热点阅读