C语言期末习题之统计大写字母,数字和其他字符的个数

简介: C语言期末习题之统计大写字母,数字和其他字符的个数

1.题目

输入一行字符,分别统计出大写英文字母、数字,其他字符和字符总数的个数,并输出统计的结果。


2.思路

我们可以使用 `getchar()` 函数来一次读取一行字符,然后使用 `if-else` 分支语句对每个字符进行分类计数,最后输出统计结果。具体思路如下:

1. 声明三个计数器变量,分别用于统计大写字母、数字和其他字符的个数。

2. 使用 `getchar()` 函数读取一行字符,并计算字符总数。

3. 遍历读取的每个字符,对其进行分类计数:

  - 如果是大写字母,则将大写字母计数器加 1。

  - 如果是数字,则将数字计数器加 1。

  - 如果是其他字符,则将其他字符计数器加 1。

4. 输出统计结果,分别输出大写字母、数字、其他字符和总字符数。

下面让我们来实现代码吧~


3.代码实现

 
#include <stdio.h>
 
int main() {
    char c;
    int uppercase_count = 0, digit_count = 0, other_count = 0, total_count = 0;
 
    printf("请输入一行字符:");
    while ((c = getchar()) != '\n')
         {
        total_count++; // 统计字符总数
 
        if (c >= 'A' && c <= 'Z')
         {
            uppercase_count++; // 统计大写字母个数
        } 
        else if (c >= '0' && c <= '9')
         {
            digit_count++; // 统计数字个数
        } 
        else 
        {
            other_count++; // 统计其他字符个数
        }
    }
 
    printf("大写字母的个数:%d\n", uppercase_count);
    printf("数字的个数:%d\n", digit_count);
    printf("其他字符的个数:%d\n", other_count);
    printf("总字符数:%d\n", total_count);
 
    return 0;
}
 
 
 


目录
相关文章
|
20天前
|
存储 算法 C语言
【C语言】字符常量详解
字符常量是C语言中处理字符数据的重要工具。通过单引号括起一个字符,我们可以方便地使用字符常量进行字符判断、字符运算和字符串处理等操作。理解字符常量的表示方法、使用场景和ASCII码对应关系,对于编写高效的C语言程序至关重要。
79 11
|
20天前
|
存储 C语言 开发者
【C语言】格式化输出占位符及其标志字符详解(基于ISO/IEC 9899:2024)
在C语言中,格式化输出通过 `printf` 函数等格式化输出函数来实现。格式说明符(占位符)定义了数据的输出方式,标准ISO/IEC 9899:2024(C23)对这些格式说明符进行了详细规定。本文将详细讲解格式说明符的组成部分,包括标志字符、宽度、精度、长度修饰符和类型字符,并适当增加表格说明。
39 6
|
2月前
|
C语言
大学生期末C语言实验(学生成绩和鞍点)
大学生期末C语言实验(学生成绩和鞍点)
249 0
大学生期末C语言实验(学生成绩和鞍点)
|
2月前
|
C语言
C语言字符(串)函数
C语言字符(串)函数
|
2月前
|
存储 安全 编译器
深入C语言库:字符与字符串函数模拟实现
深入C语言库:字符与字符串函数模拟实现
|
3月前
|
存储 C语言
【C语言基础考研向】10 字符数组初始化及传递和scanf 读取字符串
本文介绍了C语言中字符数组的初始化方法及其在函数间传递的注意事项。字符数组初始化有两种方式:逐个字符赋值或整体初始化字符串。实际工作中常用后者,如`char c[10]=&quot;hello&quot;`。示例代码展示了如何初始化及传递字符数组,并解释了为何未正确添加结束符`\0`会导致乱码。此外,还讨论了`scanf`函数读取字符串时忽略空格和回车的特点。
106 8
|
2月前
|
C语言
C语言常见字符函数和字符串函数精讲
C语言常见字符函数和字符串函数精讲
|
3月前
|
存储 人工智能 C语言
C语言程序设计核心详解 第六章 数组_一维数组_二维数组_字符数组详解
本章介绍了C语言中的数组概念及应用。数组是一种存储同一类型数据的线性结构,通过下标访问元素。一维数组定义需指定长度,如`int a[10]`,并遵循命名规则。数组元素初始化可使用 `{}`,多余初值补0,少则随机。二维数组扩展了维度,定义形式为`int a[3][4]`,按行优先顺序存储。字符数组用于存储字符串,初始化时需添加结束符`\0`。此外,介绍了字符串处理函数,如`strcat()`、`strcpy()`、`strcmp()` 和 `strlen()`,用于拼接、复制、比较和计算字符串长度。
|
4月前
|
机器学习/深度学习 C语言
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
要保持最小的步数,每一次汉诺塔问题(无论是最初还是递归过程中的),如果此时初始柱盘子数为偶数,我们第一步是把最上面的盘子移动到中转柱,如果为奇数,我们第一步则是将其移动到目标柱。
101 0
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
|
4月前
|
C语言
【C语言篇】字符和字符串以及内存函数详细介绍与模拟实现(下篇)
perror函数打印完参数部分的字符串后,再打印⼀个冒号和⼀个空格,再打印错误信息。
66 0