百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

C语言字符串的秘密:islower、isupper、isdigit和isspace函数

haoteby 2024-12-18 14:10 5 浏览

学习工控知识,就来工控小新

农历腊月初三 2024/1/ 13


往期推荐

2024年1月12日,每日一分钟练习C语言,学习路上不能停

2024年1月11日,每日一分钟练习C语言,学习路上不能停

每日一练

/ Daily Exercises

C语言题目:

统计各类字符个数

分别统计一个字符串中出现小写字母、大写字母、数字和3输入格式:

在一行中输入长度不超过40的字符串。

输出格式:

第一行中输出“小写字母=x” 第二行中输出“大写字母=y输入样例:

sd2h b57 sA

输出样例:

小写字母=5

大写字母=1

数字=3

空格=2


题目分析

- 从标准输入中读取一个长度不超过40的字符串,可以使用`scanf`函数和`%s`格式符。

- 遍历这个字符串的每个字符,判断它的类型,然后用四个变量分别记录小写字母、大写字母、数字和空格的个数,可以使用`islower`、`isupper`、`isdigit`和`isspace`函数。

- 在标准输出中按照指定的格式输出这四个变量的值,可以使用`printf`函数和`%d`格式符。

接下来,我们来看一下这个C语言程序的代码。我使用了`stdio.h`和`ctype.h`两个头文件,分别提供了输入输出和字符判断的函数。我在VC6.0的环境下编译和运行了这个程序,得到了正确的结果。

程序展示

#include <stdio.h>
#include <ctype.h>
int main()
{
    char str[41]; //定义一个长度为41的字符数组,留一个位置存放字符串结束符'\0'
    int lower = 0, upper = 0, digit = 0, space = 0; //定义四个变量,分别记录小写字母、大写字母、数字和空格的个数
    int i; //定义一个循环变量
    printf("请输入一个长度不超过40的字符串:\n");
    scanf("%40[^\n]", str); //从标准输入中读取一行字符串,存放在str数组中
    for (i = 0; str[i] != '\0'; i++) //遍历字符串的每个字符,直到遇到字符串结束符'\0'
    {
        if (islower(str[i])) //如果是小写字母,小写字母个数加一
            lower++;
        else if (isupper(str[i])) //如果是大写字母,大写字母个数加一
            upper++;
        else if (isdigit(str[i])) //如果是数字,数字个数加一
            digit++;
        else if (isspace(str[i])) //如果是空格,空格个数加一
            space++;
    }
    printf("小写字母=%d\n", lower); //输出小写字母个数
    printf("大写字母=%d\n", upper); //输出大写字母个数
    printf("数字=%d\n", digit); //输出数字个数
    printf("空格=%d\n", space); //输出空格个数
    return 0;
}


程序测试

为了验证我们的程序是否正确,我们可以用一些测试用例来检验。我们可以请输入一个长度不超过40的字符串:sd2h b57 sA


源代码获取

#软件下载通道#



我用夸克网盘分享了「20240113」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。

链接:https://pan.quark.cn/s/c4a69f68889b

(链接和提取码建议复制粘贴,手动输入容易出现错误)

#支持一下#

分享整理,测试发布不易 如果您方便的话可以帮忙点一下↓↓

谢谢大家!



下期题目

C语言题目:从中序与后序遍历序列构造二叉树 根据一棵树的中序遍历与后序遍历构造二叉树。注意: 你可以假设树中没有重复的元素。例如,给出 中序遍历 inorder =[9,3,15,20,7] 后序遍历 postorder=「9,15,7,20,3]返回如下的二又树


点赞加关注,学习不迷路

微信公众号|工控小新

EPLAN电气绘图、TIA博图基础 、CAD、C语言教学、单片机基础、三菱PLC ... 每日持续更新中

#新豪华 新智享#

相关推荐

单点登录(SSO)解决方案介绍(单点登录概念)

一、单点登录的介绍单点登录(SingleSignOn),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系...

系统登录的三种方式,哪一种更安全?

登录是一个高频的动作,笔者抓住这一个小点,分析了系统登录的几种方式和对应的场景。今天谈谈登录。登录即用户输入用户名和密码登录进系统中。B端系统,对于登录的业务场景有两种(可能不止,目前遇到过这两种):...

到底什么是单点登录(SSO)?(什么叫做单点登录)

什么是单点登录?单点登录(SingleSign-On,简称SSO)是一种集中式的身份验证和授权机制,用户只需在一处输入一次凭证(例如用户名和密码)就可以访问多个相关但独立的软件系统。在数字化时代,...

5年稳如老狗的单点登录系统,到底是怎么搞出来的?

说到单点登录(SingleSign-On,简称SSO),大家的第一反应可能是——啊不就是登录一次,能到处串门儿嘛?别说,还真差不多,就是这么个意思。但真要搭一套好用、耐造、还能扛住公司里各种奇奇怪...

这些负载均衡都解决哪些问题?服务、网关、NGINX?

在微服务项目中,有服务的负载均衡、网关的负载均衡、Nginx的负载均衡,这几个负载均衡分别用来解决什么问题呢?一、服务的负载均衡先抛出一个问题:...

Nginx负载均衡最全详解(4大算法原理机制)

Nginx在大型网站架构很重要,也是大厂重点考察方向,今天我就重点来详解Nginx负载均衡@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。Nginx负载均衡N...

负载均衡 Nginx Session 一致性(nginx 负载均衡 会话保持)

HTTPS请求跳转...

监控Oracle Cloud负载均衡器:Applications Manager释放最佳性能

设想你正在运营一个受欢迎的在线学习平台,在考试前的高峰期,平台流量激增。全球的学生同时登录,观看视频、提交作业和参加测试。如果OracleCloud负载均衡器不能高效地分配流量,或者后端服务器难...

Nginx负载均衡:nginx.conf配置文件说明!

大家好,欢迎来到程序视点!我是你们的老朋友.小二!在此记录下Nginx服务器nginx.conf负载均衡的配置文件说明,部分注释收集与网络.关于nginx.conf基本的配置,请查看上一篇文章!Ng...

Java高可用系统架构中的负载均衡策略

Java高可用系统架构中的负载均衡策略在现代的分布式系统中,负载均衡策略是构建高可用系统的基石。Java开发者需要深刻理解这些策略,以便打造稳定且高效的系统。接下来,让我们一起揭开负载均衡的神秘面纱。...

深入对比Nginx、LVS和HAProxy,选择最合适负载均衡方案!

关注...

Spring Boot3 客户端负载均衡全解析:从原理到实战

在当今互联网大厂后端技术开发的激烈竞争环境中,构建高效、稳定的微服务架构是核心诉求。其中,SpringBoot3作为热门开发框架,其客户端负载均衡功能对于提升系统性能、保障服务稳定性起着关键作用。...

MySql高可用集群MySQL Router负载均衡读写分离

名词解释MGR:MysqlGroupReplication组复制,多台MySQL服务器在同一组中会自动保持同步状态,当某台服务器故障时,整个复制组依然可以保持正常并对外提供服务。...

性能测试之tomcat+nginx负载均衡(nginx tomcat)

nginxtomcat配置准备工作:两个tomcat执行命令cp-rapache-tomcat-8.5.56apache-tomcat-8.5.56_2修改被复制的tomcat2下con...

win10/11双网卡链路聚合叠加负载均衡提升网速解决网卡网速瓶颈!

双网卡链路聚合一种网络配置技术,通过将多个物理网卡绑定在一起,形成一个逻辑上的网络接口,以提高网络的可靠性、可用性和性能。这种技术通常用于服务器和网络设备中,以实现负载均衡、冗余和高可用性。本机环境:...