输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。-多语言
目录
C 语言实现
Python 实现
Java 实现
Js 实现
Ts 实现
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
程序分析:利用while语句,条件为输入的字符不为'\n'。
C 语言实现
#include <stdio.h>int main() {char c;int letters = 0, spaces = 0, digits = 0, others = 0;// 提示用户输入一些字符printf("请输入一些字母:\n");// 读取字符直到遇到换行符while ((c = getchar()) != '\n') {// 判断字符类型并更新计数if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {letters++;} else if (c >= '0' && c <= '9') {digits++;} else if (c == ' ') {spaces++;} else {others++;}}// 输出结果printf("字母=%d, 数字=%d, 空格=%d, 其他=%d\n", letters, digits, spaces, others);return 0; // 返回0表示程序正常结束
}
- 头文件包含:
#include <stdio.h>
用于引入标准输入输出库。 - 变量声明: 声明字符变量
c
和四个整型变量letters
、spaces
、digits
、others
,用于统计不同类型的字符。 - 用户输入提示: 使用
printf
提示用户输入字符。 - 字符读取: 使用
getchar()
函数逐个读取字符,直到遇到换行符(用户按下 Enter 键)。 - 字符分类:
- 如果字符是字母(小写或大写),则
letters
计数器加 1。 - 如果字符是数字(0-9),则
digits
计数器加 1。 - 如果字符是空格,则
spaces
计数器加 1。 - 其他字符则计入
others
计数器。
- 如果字符是字母(小写或大写),则
- 结果输出: 使用
printf
输出统计结果。 - 程序结束:
return 0;
表示程序正常结束。
Python 实现
def main():letters = 0spaces = 0digits = 0others = 0# 提示用户输入一些字符print("请输入一些字母:")input_string = input() # 获取用户输入# 遍历输入的每个字符for c in input_string:if c.isalpha(): # 检查是否为字母letters += 1elif c.isdigit(): # 检查是否为数字digits += 1elif c == ' ': # 检查是否为空格spaces += 1else: # 其他字符others += 1# 输出结果print(f"字母={letters}, 数字={digits}, 空格={spaces}, 其他={others}")if __name__ == "__main__":main() # 调用主函数
- 函数定义: 定义
main()
函数作为程序的主入口。 - 变量初始化: 初始化四个计数器
letters
、spaces
、digits
和others
为 0。 - 用户输入: 使用
input()
函数提示用户输入字符。 - 字符遍历: 使用
for
循环遍历输入字符串中的每个字符。- 使用
isalpha()
方法检查字符是否为字母。 - 使用
isdigit()
方法检查字符是否为数字。 - 直接比较字符是否为空格。
- 其他字符则计入
others
计数器。
- 使用
- 结果输出: 使用
print()
函数输出统计结果。 - 程序入口: 使用
if __name__ == "__main__":
确保在直接运行脚本时调用main()
函数。
Java 实现
import java.util.Scanner;public class CharacterCounter {public static void main(String[] args) {char c;int letters = 0, spaces = 0, digits = 0, others = 0;// 创建 Scanner 对象以获取用户输入Scanner scanner = new Scanner(System.in);System.out.println("请输入一些字母:");// 读取输入直到换行String input = scanner.nextLine();// 遍历输入的每个字符for (int i = 0; i < input.length(); i++) {c = input.charAt(i);if (Character.isLetter(c)) { // 检查是否为字母letters++;} else if (Character.isDigit(c)) { // 检查是否为数字digits++;} else if (c == ' ') { // 检查是否为空格spaces++;} else { // 其他字符others++;}}// 输出结果System.out.printf("字母=%d, 数字=%d, 空格=%d, 其他=%d\n", letters, digits, spaces, others);scanner.close(); // 关闭扫描器}
}
- 导入 Scanner 类:
import java.util.Scanner;
用于获取用户输入。 - 主类定义: 定义
CharacterCounter
类。 - 主方法:
public static void main(String[] args)
是程序的入口。 - 变量声明: 声明字符变量
c
和四个整型变量letters
、spaces
、digits
、others
,用于统计不同类型的字符。 - 创建 Scanner 对象: 使用
Scanner
类创建一个对象以获取用户输入。 - 用户输入提示: 使用
System.out.println
提示用户输入字符。 - 读取输入: 使用
scanner.nextLine()
读取整行输入。 - 字符遍历: 使用
for
循环遍历输入字符串中的每个字符。- 使用
Character.isLetter(c)
检查字符是否为字母。 - 使用
Character.isDigit(c)
检查字符是否为数字。 - 直接比较字符是否为空格。
- 其他字符则计入
others
计数器。
- 使用
- 结果输出: 使用
System.out.printf
输出统计结果。 - 关闭 Scanner: 使用
scanner.close()
关闭扫描器以释放资源。
Js 实现
function countCharacters() {let letters = 0;let spaces = 0;let digits = 0;let others = 0;// 提示用户输入一些字符const inputString = prompt("请输入一些字母:");// 遍历输入的每个字符for (let c of inputString) {if (/[a-zA-Z]/.test(c)) { // 检查是否为字母letters++;} else if (/\d/.test(c)) { // 检查是否为数字digits++;} else if (c === ' ') { // 检查是否为空格spaces++;} else { // 其他字符others++;}}// 输出结果alert(`字母=${letters}, 数字=${digits}, 空格=${spaces}, 其他=${others}`);
}// 调用函数
countCharacters();
- 函数定义: 定义
countCharacters
函数作为程序的主逻辑。 - 变量初始化: 初始化四个计数器
letters
、spaces
、digits
和others
为 0。 - 用户输入: 使用
prompt()
函数提示用户输入字符,并将输入的字符串存储在inputString
变量中。 - 字符遍历: 使用
for...of
循环遍历输入字符串中的每个字符。- 使用正则表达式
/[a-zA-Z]/
检查字符是否为字母。 - 使用正则表达式
/\d/
检查字符是否为数字。 - 直接比较字符是否为空格。
- 其他字符则计入
others
计数器。
- 使用正则表达式
- 结果输出: 使用
alert()
函数输出统计结果。
Ts 实现
function countCharacters(): void {let letters = 0;let spaces = 0;let digits = 0;let others = 0;// 提示用户输入一些字符const inputString: string | null = prompt("请输入一些字母:");// 确保用户输入不为空if (inputString) {// 遍历输入的每个字符for (const c of inputString) {if (/[a-zA-Z]/.test(c)) { // 检查是否为字母letters++;} else if (/\d/.test(c)) { // 检查是否为数字digits++;} else if (c === ' ') { // 检查是否为空格spaces++;} else { // 其他字符others++;}}// 输出结果alert(`字母=${letters}, 数字=${digits}, 空格=${spaces}, 其他=${others}`);} else {alert("没有输入任何字符。");}
}// 调用函数
countCharacters();
- 函数定义: 定义
countCharacters
函数作为程序的主逻辑。 - 变量初始化: 初始化四个计数器
letters
、spaces
、digits
和others
为 0。 - 用户输入: 使用
prompt()
函数提示用户输入字符,并将输入的字符串存储在inputString
变量中。由于prompt()
可能返回null
,因此使用string | null
类型。 - 输入检查: 确保用户输入不为空,如果输入为空,则提示用户没有输入任何字符。
- 字符遍历: 使用
for...of
循环遍历输入字符串中的每个字符。- 使用正则表达式
/[a-zA-Z]/
检查字符是否为字母。 - 使用正则表达式
/\d/
检查字符是否为数字。 - 直接比较字符是否为空格。
- 其他字符则计入
others
计数器。
- 使用正则表达式
- 结果输出: 使用
alert()
函数输出统计结果。
注意:
- 该代码在浏览器环境中运行,因为它使用了
prompt()
和alert()
函数来与用户交互。 - 确保在 TypeScript 环境中编译并运行此代码,或者在支持 TypeScript 的环境中直接运行。
相关文章:
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。-多语言
目录 C 语言实现 Python 实现 Java 实现 Js 实现 Ts 实现 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 程序分析:利用while语句,条件为输入的字符不为\n。 C 语言实现 #include <stdio.h>int mai…...
2-2-18-9 QNX系统架构之文件系统(三)
阅读前言 本文以QNX系统官方的文档英文原版资料为参考,翻译和逐句校对后,对QNX操作系统的相关概念进行了深度整理,旨在帮助想要了解QNX的读者及开发者可以快速阅读,而不必查看晦涩难懂的英文原文,这些文章将会作为一个…...
各大浏览器(如Chrome、Firefox、Edge、Safari)的对比
浏览器如Chrome、Firefox、Edge等在功能、性能、隐私保护等方面各有特点。以下是对这些浏览器的详细对比,帮助你选择合适的浏览器。 1. Google Chrome 市场份额:Chrome是目前市场上最流行的浏览器,约占全球浏览器市场的65%以上。 性能&#…...
nginx搭建直播推流服务
文章目录 学习链接步骤使用nginx搭建直播推流服务安装依赖库下载nginx-http-flv-module模块下载nginx解压nginx,进入nginx目录设置nginx编译配置编译并安装配置nginx rtmp服务启动nginx 准备另外一台电脑下载OBS下载OBS windows | linux 安装vlc观看直播flv协议hls协…...
单片机-- 松瀚sonix学习过程
硬件:松瀚sn8f5701sg、SN-LINK 3 Adapter模拟器、sn-link转接板 软件: keil-c51(v9.60):建立工程,编辑,烧录程序 SN-Link_Driver for Keil C51_V3.00.005:安装sonix设备包和snlin…...
循环神经网络:从基础到应用的深度解析
🍛循环神经网络(RNN)概述 循环神经网络(Recurrent Neural Network, RNN)是一种能够处理时序数据或序列数据的深度学习模型。不同于传统的前馈神经网络,RNN具有内存单元,能够捕捉序列中前后信息…...
从扩散模型开始的生成模型范式演变--SDE
SDE是在分数生成模型的基础上,将加噪过程扩展时连续、无限状态,使得扩散模型的正向、逆向过程通过SDE表示。在前文讲解DDPM后,本文主要讲解SDE扩散模型原理。本文内容主要来自B站Up主deep_thoughts分享视频Score Diffusion Model分数扩散模型…...
【python使用kazoo连ZooKeeper基础使用】
from kazoo.client import KazooClient, KazooState from kazoo.exceptions import NoNodeError,NodeExistsError,NotEmptyError import json# 创建 KazooClient 实例,连接到 ZooKeeper 服务器 zk KazooClient(hosts127.0.0.1:2181) zk.start()# 定义节点路径 path…...
【设计模式系列】解释器模式(十七)
一、什么是解释器模式 解释器模式(Interpreter Pattern)是一种行为型设计模式,它的核心思想是分离实现与解释执行。它用于定义语言的文法规则,并解释执行语言中的表达式。这种模式通常是将每个表达式抽象成一个类,并通…...
只出现一次的数字
只出现一次的数字 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 示例 1 ÿ…...
SpringMVC-08-json
8. Json 8.1. 什么是Json JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写…...
技术文档的语言表达
技术文档的语言表达 在这个瞬息万变的技术世界中,了解如何撰写有效的技术文档显得尤为重要。无论是开发团队还是最终用户,清晰、简洁且有条理的文档都是连接各方的桥梁。本文将深入探讨技术文档的语言表达,从其重要性、写作原则到各种类型&a…...
UEFI 事件
UEFI 不再支持中断(准确地说,UEFI 不再为开发者提供中断支持,但在UEFI内部还是使用了时钟中断),所有的异步操作都要通过事件(Event)来完成。 启动服务为开发者提供了用于操作事件、定时器及TPL…...
大师开讲-图形学领域顶级专家王锐开讲Vulkan、VSG开源引擎
王锐,毕业于清华大学,图形学领域顶级专家,开源技术社区的贡献者与推广者。三维引擎OpenSceneGraph的核心基石开发者与维护者,倾斜摄影数据格式osgb的发明人。著有《OpenSceneGraph 3 Cookbook》,《OpenSceneGraph 3 Beginers Guid…...
小F的矩阵值调整
问题描述 小F得到了一个矩阵。如果矩阵中某一个格子的值是偶数,则该值变为它的三倍;如果是奇数,则保持不变。小F想知道调整后的矩阵是什么样子的。 测试样例 样例1: 输入:a [[1, 2, 3], [4, 5, 6]] 输出:…...
ORB-SLAM2 ----- LocalMapping::SearchInNeighbors()
文章目录 一、函数意义二、函数讲解三、函数代码四、本函数使用的匹配方法ORBmatcher::Fuse()1. 函数讲解2. 函数代码 四、总结 一、函数意义 本函数是用于地图点融合的函数,前面的函数生成了新的地图点,但这些地图点可能在前面的关键帧中已经生成过了&a…...
给UE5优化一丢丢编辑器性能
背后的原理 先看FActorIterator的定义 /*** Actor iterator* Note that when Playing In Editor, this will find actors only in CurrentWorld*/ class FActorIterator : public TActorIteratorBase<FActorIterator> {//..... }找到基类TActorIteratorBase /*** Temp…...
【Docker】常用命令汇总
Docker 是1个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相…...
Mybatis:CRUD数据操作之多条件查询及动态SQL
Mybatis基础环境准备请看:Mybatis基础环境准备 本篇讲解Mybati数据CRUD数据操作之多条件查询 1,编写接口方法 在 com.itheima.mapper 包写创建名为 BrandMapper 的接口。在 BrandMapper 接口中定义多条件查询的方法。 而该功能有三个参数,…...
【笔记】轻型民用无人驾驶航空器安全操控
《轻型民用无人驾驶航空器安全操控》 理论考试培训材料 法规部分 【民用无人驾驶航空器的分类】 1、如何定义微型、轻型无人驾驶航空器? 微型无人驾驶航空器,是指空机重量小于0.25千克,最大平飞速度不超过40千米/小时,无线电发…...
TouchGFX设计模式代码实例说明
一)Model - View - Presenter (MVP) 模式在 TouchGFX 中的应用 1)Model(模型): 模型代表应用程序的数据和业务逻辑。例如,在一个简单的计数器应用中,模型可以是一个包含计数器当前值的类。 class CounterModel { pri…...
flink学习(7)——window
概述 窗口的长度(大小): 决定了要计算最近多长时间的数据 窗口的间隔: 决定了每隔多久计算一次 举例:每隔10min,计算最近24h的热搜词,24小时是长度,每隔10分钟是间隔。 窗口的分类 1、根据window前是否调用keyBy分为键控窗口和非键控窗口…...
restTemplate get请求
报错解释: 这个报错信息表明在使用RestTemplate进行GET请求时,需要提供一个请求类型(reqType),但是传入的值为空。这通常意味着在构建请求或者调用方法时,没有正确设置请求的Content-Type头部,…...
ffmpeg 预设的值 加速
centos 安装ffmpeg 编译安装 官网获取最新的linux ffmpeg 代码 https://ffmpeg.org//releases/ mkdir -p /data/app/ffmpeg cd /data/app/ffmpeg wget http://www.ffmpeg.org/releases/ffmpeg-7.1.tar.gz tar -zxvf ffmpeg-7.1.tar.gz#安装所需的编译环境 yum install -y \…...
maven <scope>compile</scope>作用
在 Maven 项目中, 元素用于定义依赖项的作用范围。 元素可以有多个值,每个值表示不同的作用范围。其中,scope compile scope 是默认的作用范围,表示该依赖项在编译、测试和运行时都需要。 scope compile scope 的含义 1、编译时…...
Ubuntu Server 22.04.5 从零到一:详尽安装部署指南
文章目录 Ubuntu Server 22.04.5 从零到一:详尽安装部署指南一、部署环境二、安装系统2.1 安装2.1.1 选择安装方式2.1.2 选择语言2.1.3 选择不更新2.1.4 选择键盘标准2.1.5 选择安装版本2.1.6 设置网卡2.1.7 配置代理2.1.8 设置镜像源2.1.9 选择装系统的硬盘2.1.10 …...
反射机制了解
反射概念 了解反射背景 存在某些变量或形参的声明类型是Object类型,但是程序却需要调用该对象运行时类型的方法,该方法不是Object中的方法,如何解决。转到如何获取该对象运行时类型的方法。 只能运行时才能获取,这就用到反射。 …...
机器学习策略Ⅰ
机器学习策略Ⅰ 在构建一个好的监督学习系统时,通常需要确保以下四个方面: 系统需要在训练集上能够很好地拟合数据,达到某种可接受的性能水平(如接近人类水平)。如果训练集表现不好,可以使用更大的模型&…...
redis中的bigkey及读取优化
一、bigKey介绍 1、简介 在 Redis 中,Big Key(大键)指的是占用大量内存的单个键。通常,Redis 是一个高性能的内存数据库,但是当某些键变得非常大时,会带来性能上的影响。例如,大量的内存消耗、长时间的操作延迟,甚至可能导致 Redis 停止响应或崩溃。 通俗的来说,指…...
【西瓜书】支持向量机(SVM)
支持向量机(Support Vector Machine,简称SVM)。 超平面 分类学习最基本的想法就是基于训练集合D在样本空间中找到一个划分超平面,将不同类别的样本分开。 但能将训练样本分开的划分超平面可能有很多,应该努力去找到哪…...
在家帮别人做网站赚钱/外包公司是什么意思
文件系统类型 在windows中我们常见的磁盘格式有fat16、fat32和ntfs。但是windows的文件管理显得有些赘余,为打开一个文件需要打开n个地方,在一个角落里找。而且windows本身对于其他系统的文件格式就更差了,没有听说在windows里打开ext3或者ma…...
wordpress无法跳转正确的404/百度惠生活推广怎么收费
本专栏是笔者的网络安全学习笔记,一面分享,同时作为笔记 工欲善其事必先利其器,本篇讲解一些常用工具的使用 前文链接 WAMP/DVWA/sqli-labs 搭建burpsuite工具抓包及Intruder暴力破解的使用 用到的工具 burpsuiteDirBuster 工具下载 burpsuite:前文…...
怎样注册自己网站/sem 优化价格
小白系统免费的人工客服点击联系上期文章发出后,发现还是有很多的朋友执着于win7,是哪几位小伙伴我就不艾特你了!所以今天小白就给大家带来一篇win10如何退回到win7的教程,认真看,认真学!方法一:…...
我做网站了 圆通/关键字挖掘爱站网
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 1.nn.BatchNorm1d(num_features)1.对小批量(mini-batch)的2d或3d输入进行批标准化(Batch Normalization)操作2.num_features:来自期望输…...
php网站系统/优化防控举措
在完成业务影响分析之后,灾难恢复规划的下一步是完成风险评估模板。 业务影响分析(BIA)有助于企业组织找出最关键的业务流程,描绘出流程中断带来的潜在影响,而风险评估则可以找出可能会对关键业务流程产生负面影响的内…...
深圳企业建站设计公司/营销活动推广方案
使用python逐行读取文件内容的几个方法?方法一:使用readline读取: f open("fix.txt") line f.readline() while line: print line line f.readline() f.close() 方法二: for line in open("fix.txt&q…...