当前位置: 首页 > news >正文

C语言:6.22练习题数组解答

#include <stdio.h>
#include <string.h> // 用于 strlen()
int main() {
    char a[100];
    int j = 0;
    // 从用户输入读取字符串
    printf("请输入一个字符串: ");
    fgets(a, sizeof(a), stdin);
    // 遍历字符串中的每个字符
    for (int i = 0; i < strlen(a); i++) {
        if (a[i] >= 'a' && a[i] <= 'z') {
            j++;
        }
    }
    // 输出小写字母的数量
    printf("%d\n", j);
    return 0;
}

1. char a[100];

  • 定义了一个字符数组 a,大小为 100,用于存储用户输入的字符串。

2. int j = 0;
  • 定义了一个整数变量 j,初始化为 0。这个变量用于统计小写字母的数量。

3. int b;
  • 定义了一个整数变量 b,用于存储数组 a 的大小。

4. getchar(a);
  • 问题getchar() 用于从标准输入读取单个字符,但这里错误地传递了数组 a 作为参数。

  • 修正:应该使用 fgets(a, sizeof(a), stdin) 或 scanf("%s", a) 来读取字符串。

5. b = sizeof(a);
  • 问题sizeof(a) 返回的是数组 a 的总大小(这里是 100 字节),而不是字符串的实际长度。

  • 修正:应该使用 strlen(a) 来获取字符串的实际长度。

6. for (char i = 0; i < b; i++)
  • 问题

    • 循环变量 i 是 char 类型,范围有限(-128 到 127),可能导致溢出。

    • 循环条件是 i < b,但 b 是数组的总大小(100),而不是字符串的实际长度。

    • 循环中检查的是 i 是否为小写字母,而不是检查字符串 a 中的字符。

  • 修正

    • 应该使用 int i 作为循环变量。

    • 循环条件应该是 i < strlen(a)

    • 循环中应该检查 a[i] 是否为小写字母。

7. if (i >= 'a' && i <= 'z')
  • 问题:这里检查的是循环变量 i 是否为小写字母,而不是字符串 a 中的字符。

  • 修正:应该检查 a[i] 是否为小写字母。

8. j++;
  • 如果条件成立,j 的值加 1,用于统计小写字母的数量。

9. printf("%d", j);
  • 输出变量 j 的值,即小写字母的数量。

  • #include <stdio.h>
    #include <string.h> // 用于 strlen()
    
    int main() {
        char a[100];
        int j = 0;
    
        // 从用户输入读取字符串
        printf("请输入一个字符串: ");
        fgets(a, sizeof(a), stdin);
    
        // 遍历字符串中的每个字符
        for (int i = 0; i < strlen(a); i++) {
            if (a[i] >= 'a' && a[i] <= 'z') {
                j++;
            }
        }
    
        // 输出小写字母的数量
        printf("%d\n", j);
    
        return 0;
    }

http://www.dtcms.com/a/62333.html

相关文章:

  • 安装、配置和启动 ssh 服务,实现远程连接服务器
  • 【推荐项目】Java的廊坊城市公交查询网站
  • 应急响应入门-bugku靶场
  • 作为一名程序员,学习AI的计划
  • 关于 Proxmark3 的详细介绍、使用指南及配置说明
  • 基于Matlab设计GUI图像处理交互界面
  • HTTP发送POST请求的两种方式
  • 化工行业智慧工厂解决方案(56页PPT)
  • upload-labs-master通关攻略(13~16)
  • J-LangChain - Agent - 编排一个 ReAct + Function Call 反应链
  • 领先AI企业经验谈:探究AI分布式推理网络架构实践
  • 清华同方国产电脑能改windows吗_清华同方国产系统改win7教程
  • 【C++内存管理】:new与delete,operator new与operator delete
  • 简易分析 uni.chooseImage 拍照上传的基本知识点(附Demo)
  • 医疗AI测试实战:如何确保人工智能安全赋能医疗行业?
  • 使用Python爬虫根据关键词获取衣联网商品列表:实战指南
  • 若依框架-给sys_user表添加新字段并获取当前登录用户的该字段值
  • 在Spring Boot项目中如何实现获取FTP远端目录结构
  • PHP框架加载不上.env文件中的变量
  • 选择 DotNetBrowser 还是 EO.WebBrowser
  • 安全的实现数据备份和恢复
  • PawSQL for TDSQL:腾讯云TDSQL数据库性能优化全攻略
  • Linux第18节 --- 重定向与文件IO的基本认识
  • 接口自动化入门 —— swagger/word/excelpdf等不同种类的接口文档理解!
  • std::any详解
  • Java实现死锁
  • 【沐渥科技】氮气柜日常如何维护?
  • nginx 打造高性能 API 网关(‌Building a High-Performance API Gateway with Nginx)
  • Deepin通过二进制方式升级部署高版本 Docker
  • 数据库系统概论(四)关系模型的数据结构及形象化