您好,欢迎来到好土汽车网。
搜索
您的当前位置:首页输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数

输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数

来源:好土汽车网

#include <stdio.h>

int main()
 {
   int a = 0, b = 0, c = 0, d = 0;
   char ch;
        printf("输入一行字符串:\n");
   while ((ch = getchar()) != '\n') {
       if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')){
            b++;
     }else if (ch == ' ') {
            a++;
     } else if (ch >= '0' && ch <= '9') {
            c++;
     } else {
            d++;
     }
   }
printf("英文字母的个数为:%d\n", b);
printf("空格的个数为: %d\n", a);
printf("数字的个数为: %d\n", c);
printf("其他字符的个数为: %d\n", d);
      return 0;}
 
 

以下是对这段代码的分析:

一、功能概述

这段 C 语言代码的功能是统计用户输入的一行字符串中,英文字母、空格、数字以及其他字符的个数,并分别输出。

二、代码结构

1. 首先在  main  函数中定义了四个整数变量  a 、 b 、 c 、 d ,分别用于统计空格、英文字母、数字和其他字符的个数。同时定义了一个字符变量  ch 。

2. 通过  printf  函数提示用户输入一行字符串。

3. 使用  while  循环,以  ch = getchar()  获取用户输入的字符,直到遇到换行符  '\n'  结束循环。在循环中,通过一系列条件判断对不同类型的字符进行计数。

- 如果字符是英文字母(大写或小写),则  b++ ,增加英文字母的计数。

- 如果字符是空格,则  a++ ,增加空格的计数。

- 如果字符是数字,则  c++ ,增加数字的计数。

- 如果都不是上述情况,则  d++ ,增加其他字符的计数。

4. 最后通过四个  printf  函数分别输出不同类型字符的个数。

三、注意事项

1. 此代码只能统计一行字符串中的字符个数,如果输入多行字符串,只会统计第一行的字符个数。

2. 该代码只能区分英文字母、空格、数字和其他字符,对于一些特殊字符的分类可能不够细致。

★((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))这部分代码用于判断输入的字符  ch  是否为英文字母

具体分析如下:

-  (ch >= 'a' && ch <= 'z') :判断  ch  的 ASCII 值是否在小写字母 'a' 到 'z' 的范围内。如果在这个范围内,说明  ch  是一个小写英文字母。

-  (ch >= 'A' && ch <= 'Z') :判断  ch  的 ASCII 值是否在大写字母 'A' 到 'Z' 的范围内。如果在这个范围内,说明  ch  是一个大写英文字母。

然后通过逻辑或运算符  ||  将这两个条件连接起来,只要满足其中一个条件,就说明  ch  是一个英文字母。

例如,当输入的字符为 'a' 时,满足第一个条件,即  ch >= 'a' && ch <= 'z' ,所以会被判断为英文字母;当输入的字符为 'B' 时,满足第二个条件,即  ch >= 'A' && ch <= 'Z' ,也会被判断为英文字母。

 

★(ch >= '0' && ch <= '9') 这部分代码的作用是判断输入的字符  ch  是否为数字(0 到 9)。

如果  ch  的 ASCII 值在字符 '0' 到 '9' 的范围内,说明该字符是一个数字。当满足这个条件时,执行  c++ ,即增加数字的计数变量  c  的值。

例如,当输入的字符为 '5' 时,由于 '5' 的 ASCII 值在 '0' 到 '9' 之间,所以会执行  c++ ,从而统计到数字的个数增加了一个。

这种判断方式利用了 ASCII 码的特性,字符 '0' 到 '9' 的 ASCII 值是连续的,所以可以通过这种范围判断来确定字符是否为数字。

 

★while ((ch = getchar()) != '\n') 

这段代码的作用是不断从输入流中读取字符,直到读取到换行符('\n')为止。

-  (ch = getchar()) :调用  getchar() 函数从标准输入读取一个字符,并将其赋值给变量  ch 。

-  != '\n' :判断读取到的字符是否不等于换行符。如果不等于换行符,说明输入还未结束,继续执行循环体中的代码;如果等于换行符,说明一行输入结束,退出循环。

在循环体中可以根据读取到的不同字符进行各种处理,比如统计字符的类型(数字、字母等)、执行特定的操作等。

例如,可以在循环体中对读取到的字符进行分类统计,如统计数字的个数、字母的个数等。当用户在输入时,每输入一个字符,循环就会执行一次,直到用户输入换行符表示输入结束。

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- howto234.com 版权所有 湘ICP备2022005869号-3

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务