代码打卡22- 统计各类字符个数

#include <stdio.h>
#include <ctype.h>

int main() {
    char str[41];
    int lowercase = 0, uppercase = 0, digits = 0, spaces = 0;

    // 输入字符串
    fgets(str, sizeof(str), stdin);

    // 统计字符个数
    for (int i = 0; str[i] != '\0'; ++i) {
        if (islower(str[i])) {
            lowercase++;
        } else if (isupper(str[i])) {
            uppercase++;
        } else if (isdigit(str[i])) {
            digits++;
        } else if (isspace(str[i])) {
            spaces++;
        }
    }

    // 输出结果
    printf("小写字母=%d\n", lowercase);
    printf("大写字母=%d\n", uppercase);
    printf("数字=%d\n", digits);
    printf("空格=%d\n", spaces);

    return 0;
}

这个C程序的设计目的是从用户那里读取一个字符串,然后分析并统计字符串中不同类型字符的出现次数,包括小写字母、大写字母、数字和空格。以下是程序设计的详细解释和总结:

### 设计:

1. **输入:**
   - 该程序使用`fgets`函数从标准输入(键盘)中读取一个字符串,将其存储在字符数组`str`中。确保输入不超过数组的大小(`sizeof(str)`)。

2. **字符分析:**
   - 该程序使用`for`循环遍历输入字符串中的每个字符,直到遇到空字符(`'\0'`)为止。
   - 在循环内部,使用`ctype.h`库中的函数检查每个字符:
      - `islower(str[i])`:检查字符是否为小写字母。
      - `isupper(str[i])`:检查字符是否为大写字母。
      - `isdigit(str[i])`:检查字符是否为数字。
      - `isspace(str[i])`:检查字符是否为空白字符。

3. **计数:**
   - 使用四个变量(`lowercase`、`uppercase`、`digits`、`spaces`)来跟踪每个类别的计数。

4. **输出:**
   - 在分析整个字符串后,程序打印小写字母、大写字母、数字和空格的计数。

### 总结:

- **输入验证:**
   - 该程序假设输入是有效的,没有进行额外的验证(例如,检查输入是否为空)。

- **字符分类:**
   - 该程序正确使用`ctype.h`库中的函数对字符进行分类。

- **计数:**
   - 该程序准确计算小写字母、大写字母、数字和空格的出现次数。

- **输出:**
   - 程序以格式化的方式将计数打印到控制台。

- **改进:**
   - 可以考虑添加更多的错误检查,例如处理输入字符串过长无法适应数组的情况。

总体而言,该程序是一个简单而有效的工具,用于分析给定字符串中的字符。

 

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值