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

embedded/2025/3/12 8:50:50/

#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.ppmy.cn/embedded/171988.html

相关文章

行为模式---状态模式

概念 状态模式是一种行为模式&#xff0c;用于在内部状态改变的时候改变其行为。它的核心思想就是允许一个对象在其内部状态改变的时候改变它的行为。状态模式通过将对象的状态封装成独立的类&#xff0c;并将其行为委托给当前的状态对象&#xff0c;从而使得对象行为随着状态…

在 CentOS 上,常用几种方法来确保 Python 脚本在断开终端后继续运行

在 CentOS 上&#xff0c;你可以使用以下几种方法来确保 Python 脚本在断开终端后继续运行&#xff1a; 1. 使用 nohup 命令 nohup 命令可以让进程在终端关闭后继续运行。 nohup python main.py > output.log 2>&1 &nohup&#xff1a;忽略挂断信号&#xff0c…

手势即命令:基于 OpenCV 和 MediaPipe 的智能关机系统

前言 有没有遇到过这样的场景:加班到深夜,鼠标在桌面上划半天,却无法点到关机按钮?又或者,朋友借用电脑,怕其乱翻,只希望一个手势便触发关机操作?不必担心,今天我们用 OpenCV + MediaPipe 打造一款“手势即命令”的智能关机系统,只需轻抬手指,电脑便乖顺应命令。这…

使用dify的api连接外部知识库,dify连接ragflow的知识库(附java代码)

dify的知识库一般般,但是ragflow的知识库很强大,今天教大家如何使用dify连接ragflow的知识库 一.ragflow的准备工作 1.在ragflow建立一个知识库,拿到知识库的id,红框圈出来的地方就是这个知识库的id,后面要用到 2.拿到ragflow的api的key 二.写代码,将ragflow的接口返回的内容…

Leetcode-146.LRU缓存

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键字的值&#xff0c;否则返回 -1 …

【RabbitMQ】事务

事务的简单配置及使用 配置事务管理器声明队列生产者代码测试 RabbitMQ是基于AMQP协议实现的&#xff0c;该协议实现了事务机制&#xff0c;因此RabbitMQ也支持事务机制. SpringAMQP也提供了对事务相关的操作.RabbitMQ事务允许开发者确保消息的发送和接收是原子性的&#xff0c…

鸿蒙系统中的持续部署

鸿蒙操作系统&#xff0c;作为一款面向未来的分布式操作系统&#xff0c;旨在为不同的设备提供统一的操作系统平台。它支持多种终端设备&#xff0c;包括但不限于智能手机、平板电脑、智能穿戴设备和物联网&#xff08;IoT&#xff09;设备等&#xff0c;并且能够实现跨平台的无…

通过AudioTrack计算剩余播放时间的实现

在Android中&#xff0c;通过AudioTrack计算剩余播放时间的关键步骤如下&#xff1a; 1. 核心思路 已播放帧数&#xff1a;通过getPlaybackHeadPosition()获取当前播放的音频帧数&#xff08;需注意32位溢出问题&#xff09;。 剩余帧数&#xff1a;总帧数&#xff08;数据总量…