学习工控知识,就来工控小新
农历腊月初三 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 ... 每日持续更新中