C语言计算字符串中数字字符的个数

news2024/11/20 2:35:10

文章目录

  • 1-9题
  • 前言
  • 例题10
  • 例题11
  • 答案
    • 例题10答案
      • 答案1
      • 答案2
    • 例题11答案

1-9题

C语言基础例题1-3题-指针篇
C语言基础例题4-5题-二维数组篇
C语言基础例题6-7题-结构体篇
C语言基础例题8-9题-大作业篇

前言

下列题目需要学习字符串、指针后才可练习。

例题10

请编写一个程序,要求用户输入一个字符串,然后程序将统计该字符串中数字字符的个数,并输出结果。

测试用例
测试用例1:
输入: “abc123xyz”
预期输出: 3 (数字字符的个数)
测试用例2:
输入: “hello world”
预期输出: 0 (数字字符的个数)
测试用例3:
输入: “1234567890”
预期输出: 10 (数字字符的个数,即整个字符串都是数字)
测试用例4:
输入: “1a2b3c4d5e6f7g8h9i0j”
预期输出: 10 (数字字符的个数)

例题11

写一个 C 语言函数,实现交换两个整数变量的值,函数原型如下:

void swap(int* a, int* b);

测试用例
当输入 a=5, b=10 时,调用 swap 函数后,a 变量的值应为 10,b 变量的值应为 5。
当输入 a=-3, b=7 时,调用 swap 函数后,a 变量的值应为 7,b 变量的值应为 -3。
当输入 a=0, b=0 时,调用 swap 函数后,a 变量的值应为 0,b 变量的值应为 0。

示例:
在这里插入图片描述

答案

例题10答案

答案1

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

int main(void)
{
    int sum = 0;
    char ch;
    while ((ch = getchar()) != '\n')
    {
        if (isdigit(ch))
            sum++;
    }

    printf("%d\n", sum);

    getchar();
    return 0;
}

int sum = 0;
sum用于存储数字字符的数量,初值为 0。

char ch;
变量 ch用于读取用户输入中的每个字符。

while ((ch = getchar()) != ‘\n’)
它会不断地读取用户输入的字符,直到读取到换行符为止。在循环内部执行以下操作:

ch = getchar()
读取一个字符,并赋值给变量 ch。

if (isdigit(ch))
使用 isdigit 函数判断变量 ch 是否为数字字符。
如果是数字字符,则执行 sum++,将变量 sum 的值加 1。

循环结束后,使用 printf(“%d\n”, sum); 输出变量 sum 的值,即数字字符的数量。

答案2

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

int countDigits(char *input_str)
{
    int count = 0;
    for (int i = 0; i < strlen(input_str); i++)
    {
        if (isdigit(input_str[i]))
        {
            count++;
        }
    }
    return count;
}

int main()
{
    char input_str[100];
    printf("请输入一个字符串:");
    scanf("%s", input_str);

    int result = countDigits(input_str);
    printf("数字字符的个数为: %d\n", result);

    return 0;
}

int countDigits(char *input_str)
函数接收一个字符串参数 input_str,并返回其中数字字符的个数。

在 countDigits 函数内部,定义了一个整型变量 count,初始值为 0,用于统计数字字符的数量。

使用 for 循环遍历字符串 input_str 中的每个字符:

strlen(input_str) 用于获取字符串的长度。

在循环内部使用 isdigit(input_str[i]) 判断当前字符是否为数字字符,如果是则 count++。

return count;
用于返回统计得到的数字字符个数。

在 main 函数中,定义了一个字符数组 input_str[100],用于存储用户输入的字符串,长度为 100。

使用 scanf(“%s”, input_str); 从标准输入中读取字符串,并存储到变量 input_str 中。

调用 countDigits(input_str) 函数,将用户输入的字符串作为参数传递,获取其中数字字符的个数,并赋值给变量 result。

使用 printf(“数字字符的个数为: %d\n”, result); 输出数字字符的个数。

例题11答案

#include<stdio.h>
void swap(int* a, int* b);
int main(void)
{
    int a,b;
    scanf("%d %d",&a,&b);
    swap(&a,&b);
    printf("a=%d\tb=%d\n",a,b);
    return 0;
}
void swap(int* a, int* b)
{
    int temp=*a;
    *a=*b;
    *b=temp;
}

swap(&a, &b);:
这个语句调用了 swap 函数,将 a 和 b 的地址作为参数传递给它。

int temp = *a;:
创建一个临时变量 temp,存储 a 的值。

*a = *b;:
将 b 的值赋给 a。

*b = temp;:
将临时变量 temp 的值赋给 b。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1195959.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java】I/O流—转换流、序列化流的初学者指南及RandomAccessFile类

&#x1f33a;个人主页&#xff1a;Dawn黎明开始 &#x1f380;系列专栏&#xff1a;Java ⭐每日一句&#xff1a;我不在意你曾堕落&#xff0c;我只在意你是否会崛起 &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️ 文章目录…

【算法与设计模式】

一、数据结构与算法 1、算法性能评估 时间复杂度、空间复杂度 2、数据结构 数组与列表 队列 堆栈 链表 二叉树 多叉树 递归算法 二、设计模式 1、单例 &#xff08;1&#xff09;GIL&#xff1a;线程互斥锁。保证同一时刻只有一个线程在进行。 &#xff08;2&#xff09…

嵌入式CTS测试

1.概述 CTS是一套开源测试套件&#xff0c;可以实现对OpenGL、ES、OpenCL、Vulkan的兼容性测试。OpenGL ES CTS的测试集&#xff0c;其测试用例涵盖了各种OpenGL ES 的功能和特性。这些功能包括着色器编译和链接、图元绘制、纹理操作、帧缓冲操作、深度测试、模板测试以及其他一…

中国智能驾驶的“突围赛”打响,这家本土厂商为何能成为“先行者”?

中国本土厂商正在成为全球智能汽车产业链的“核心力量”。 根据《高工智能汽车研究院》数据显示&#xff0c;今年1-6月&#xff0c;自主品牌标配L2&#xff08;含L2&#xff09;级辅助驾驶交付新车155.34万辆。其中&#xff0c;搭载中国本土智能驾驶解决方案提供商&#xff08…

Clickhouse 学习笔记(6)—— ClickHouse 分片集群

前置知识&#xff1a; Clickhouse学习笔记&#xff08;5&#xff09;—— ClickHouse 副本-CSDN博客 与副本对比&#xff1a; 副本虽然能够提高数据的可用性&#xff0c;降低丢失风险&#xff0c;但是每台服务器实际上必须容纳全量数据&#xff0c;对数据的横向扩容没有解决 …

自适应AI chatGPT智能聊天创作官网html源码/最新AI创作系统/ChatGPT商业版网站源码

源码简介&#xff1a; 自适应AI chatGPT智能聊天创作官网html源码&#xff0c;这是最新AI创作系统&#xff0c;作为ChatGPT商业版网站源码&#xff0c;它是支持创作、编写、翻译、写代码等。是一个智能聊天系统项目源码。 注意&#xff1a;这个只是网站html源码&#xff0c;要…

leetcode 刷题 - 有效三角形个数 - 长度最小的子数组 - 无重复字符的最长子串

l611. 有效三角形的个数 - 力扣&#xff08;LeetCode&#xff09; 给定一个包含非负整数的数组 nums &#xff0c;返回其中可以组成三角形三条边的三元组个数。 示例 1:输入: nums [2,2,3,4] 输出: 3 解释:有效的组合是: 2,3,4 (使用第一个 2) 2,3,4 (使用第二个 2) 2,2,3示…

【vue】vue项目批量下载二维码,且打包成压缩包.

一. 先看效果演示 二. 下插件 npm i vue-qr -S // 二维码显示插件 我的版本^4.0.9 npm i html2canvas -S // 将二维码转为图片 我的版本^1.4.1 npm i file-saver -S // 下载图片 我的版本^2.0.5 npm i jszip -S // 打包成压缩包 我的版本^3.10.1 // 一次性下载 npm i vue-qr h…

利用中断做数码表

功能要求:1.按下KEY1&#xff0c;显示数字开始每0.5秒加1&#xff0c;加到&#xff08;10学号&#xff09;返回0&#xff0c;0显示2秒后继续开始重复加1。 2. 任何时候按下KEY2数字清零&#xff0c;并停止加1。 3. KEY1和KEY2分别采用查询和外部中断方式。 要求程序中有硬件…

最新宝塔面板第三方云端站点程序源码/第三方宝塔面板PHP源码/全开源ThinkPHP框架

源码简介&#xff1a; 实现宝塔面板第三方云端站点程序源码,这个是第三方宝塔面板 btcloud PHP源码&#xff0c;它还有云端使用记录、IP黑白名单、定时任务等功能。 这是一个使用PHP开发的宝塔面板第三方云端站点程序。 您可以利用此程序搭建属于自己的宝塔面板第三方云端&a…

Springboot+vue的高校办公室行政事务管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的高校办公室行政事务管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的高校办公室行政事务管理系统&#xff0c;采用M&#xff08;m…

九种常用二次曲面的构造过程

九种常用二次曲面的构造过程 1.九种常用二次曲面的构造过程1.1 椭圆锥面1.2 椭球面1.3 单叶双曲面1.4 双叶双曲面1.5 椭圆抛物面1.6 双曲抛物面&#xff08;马鞍面&#xff09;1.7 椭圆柱面1.8 双曲柱面1.9 抛物柱面 1.九种常用二次曲面的构造过程 声明&#xff1a;部分截图来自…

【算法-哈希表1】哈希表有什么用? 来看看 有效的字母异位词 和 两数组的交集.

今天&#xff0c;带来哈希相关算法的讲解。文中不足错漏之处望请斧正&#xff01; 理论基础点这里 有效的字母异位词 1. 思路 暴力的解法&#xff0c;需要两层for循环&#xff0c;同时还要记录字符是否重复出现&#xff0c;很明显时间复杂度是 O(n^2)。 其实可以用哈希表来…

mac 无法 push 代码到 github 报错:Couldn‘t connect to server 或者 无法克隆 github 仓库 ,克隆进度卡住

开启代理后上传代码报错 Failed to connect to github.com port 443 after 75108 ms: Couldn’t connect to server 解决方法 在 网络 设置里查看代理端口号 开启配置 http、https 全局代理 git config --global http.proxy http://127.0.0.1:你所查询的端口号 git confi…

【安卓13】谷歌原生桌面launcher3源码修改,修改桌面布局(首屏应用、小部件、导航栏、大屏设备任务栏)

前言 近期接到一个关于谷歌EDLA认证的需求&#xff0c;我负责的是谷歌原生桌面布局的修改&#xff0c;通过研究源码&#xff0c;将涉及到了一些修改思路发出来&#xff0c;大家可以参考一下有没有对你有用的信息。主要修改内容有&#xff1a; 1、搜索栏、底部导航栏未居中 2、…

吴恩达《机器学习》7-1->7-4:过拟合问题、代价函数、线性回归的正则化、正则化的逻辑回归模型

一、过拟合的本质 过拟合是指模型在训练集上表现良好&#xff0c;但在新数据上的泛化能力较差。考虑到多项式回归的例子&#xff0c;我们可以通过几个模型的比较来理解过拟合的本质。 线性模型&#xff08;欠拟合&#xff09;&#xff1a; 第一个模型是一个线性模型&#xff0…

熊海CMS 靶场

熊海CMS 靶场 0x01 前言 初步了解cms&#xff0c;Content Management System 内容管理系统。它是一种用于创建、编辑、管理和发布内容的软件程序或工具。内容管理系统通常用于网站、博客、企业内部系统等各种应用中&#xff0c;可以帮助用户管理和发布各种类型的内容&#xf…

Clickhouse学习笔记(5)—— ClickHouse 副本

Data Replication | ClickHouse Docs 副本的目的主要是保障数据的高可用性&#xff0c;即使一台 ClickHouse 节点宕机&#xff0c;那么也可以从其他服务器获得相同的数据 注意&#xff1a; clickhouse副本机制的实现要基于zookeeperclickhouse的副本机制只适用于MergeTree f…

一起看看StatusBarManagerService(一)

写在前面 工作需要涉及到这部分代码&#xff0c;但是我对此了解很少&#xff1b;边学边总结&#xff0c;把这部分逻辑和涉及到的知识点弄明白。该系列不确定几篇&#xff0c;随缘。 本篇主要介绍StatusBarManagerService与systemui之间的关联。 了解StatusBarManagerService …

[Android]_[初级]_[配置gradle的环境变量设置安装位置]

场景 在开发Android项目的时候, gradle是官方指定的构建工具。不同项目通过wrapper指定不同版本的gradle。随着项目越来越多&#xff0c;使用的gradle版本也增多&#xff0c;导致它以来的各种库也增加&#xff0c;系统盘空间不足&#xff0c;怎么解决&#xff1f; 说明 grad…