当前位置: 首页 > news >正文

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。-多语言

目录

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表示程序正常结束
}
  1. 头文件包含: #include <stdio.h> 用于引入标准输入输出库。
  2. 变量声明: 声明字符变量 c 和四个整型变量 lettersspacesdigitsothers,用于统计不同类型的字符。
  3. 用户输入提示: 使用 printf 提示用户输入字符。
  4. 字符读取: 使用 getchar() 函数逐个读取字符,直到遇到换行符(用户按下 Enter 键)。
  5. 字符分类:
    • 如果字符是字母(小写或大写),则 letters 计数器加 1。
    • 如果字符是数字(0-9),则 digits 计数器加 1。
    • 如果字符是空格,则 spaces 计数器加 1。
    • 其他字符则计入 others 计数器。
  6. 结果输出: 使用 printf 输出统计结果。
  7. 程序结束: 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()  # 调用主函数
  1. 函数定义: 定义 main() 函数作为程序的主入口。
  2. 变量初始化: 初始化四个计数器 lettersspacesdigitsothers 为 0。
  3. 用户输入: 使用 input() 函数提示用户输入字符。
  4. 字符遍历: 使用 for 循环遍历输入字符串中的每个字符。
    • 使用 isalpha() 方法检查字符是否为字母。
    • 使用 isdigit() 方法检查字符是否为数字。
    • 直接比较字符是否为空格。
    • 其他字符则计入 others 计数器。
  5. 结果输出: 使用 print() 函数输出统计结果。
  6. 程序入口: 使用 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(); // 关闭扫描器}
}
  1. 导入 Scanner 类: import java.util.Scanner; 用于获取用户输入。
  2. 主类定义: 定义 CharacterCounter 类。
  3. 主方法: public static void main(String[] args) 是程序的入口。
  4. 变量声明: 声明字符变量 c 和四个整型变量 lettersspacesdigitsothers,用于统计不同类型的字符。
  5. 创建 Scanner 对象: 使用 Scanner 类创建一个对象以获取用户输入。
  6. 用户输入提示: 使用 System.out.println 提示用户输入字符。
  7. 读取输入: 使用 scanner.nextLine() 读取整行输入。
  8. 字符遍历: 使用 for 循环遍历输入字符串中的每个字符。
    • 使用 Character.isLetter(c) 检查字符是否为字母。
    • 使用 Character.isDigit(c) 检查字符是否为数字。
    • 直接比较字符是否为空格。
    • 其他字符则计入 others 计数器。
  9. 结果输出: 使用 System.out.printf 输出统计结果。
  10. 关闭 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();
  1. 函数定义: 定义 countCharacters 函数作为程序的主逻辑。
  2. 变量初始化: 初始化四个计数器 lettersspacesdigitsothers 为 0。
  3. 用户输入: 使用 prompt() 函数提示用户输入字符,并将输入的字符串存储在 inputString 变量中。
  4. 字符遍历: 使用 for...of 循环遍历输入字符串中的每个字符。
    • 使用正则表达式 /[a-zA-Z]/ 检查字符是否为字母。
    • 使用正则表达式 /\d/ 检查字符是否为数字。
    • 直接比较字符是否为空格。
    • 其他字符则计入 others 计数器。
  5. 结果输出: 使用 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();
  1. 函数定义: 定义 countCharacters 函数作为程序的主逻辑。
  2. 变量初始化: 初始化四个计数器 lettersspacesdigitsothers 为 0。
  3. 用户输入: 使用 prompt() 函数提示用户输入字符,并将输入的字符串存储在 inputString 变量中。由于 prompt() 可能返回 null,因此使用 string | null 类型。
  4. 输入检查: 确保用户输入不为空,如果输入为空,则提示用户没有输入任何字符。
  5. 字符遍历: 使用 for...of 循环遍历输入字符串中的每个字符。
    • 使用正则表达式 /[a-zA-Z]/ 检查字符是否为字母。
    • 使用正则表达式 /\d/ 检查字符是否为数字。
    • 直接比较字符是否为空格。
    • 其他字符则计入 others 计数器。
  6. 结果输出: 使用 alert() 函数输出统计结果。

注意:

  • 该代码在浏览器环境中运行,因为它使用了 prompt()alert() 函数来与用户交互。
  • 确保在 TypeScript 环境中编译并运行此代码,或者在支持 TypeScript 的环境中直接运行。

相关文章:

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。-多语言

目录 C 语言实现 Python 实现 Java 实现 Js 实现 Ts 实现 题目&#xff1a;输入一行字符&#xff0c;分别统计出其中英文字母、空格、数字和其它字符的个数。 程序分析&#xff1a;利用while语句,条件为输入的字符不为\n。 C 语言实现 #include <stdio.h>int mai…...

2-2-18-9 QNX系统架构之文件系统(三)

阅读前言 本文以QNX系统官方的文档英文原版资料为参考&#xff0c;翻译和逐句校对后&#xff0c;对QNX操作系统的相关概念进行了深度整理&#xff0c;旨在帮助想要了解QNX的读者及开发者可以快速阅读&#xff0c;而不必查看晦涩难懂的英文原文&#xff0c;这些文章将会作为一个…...

各大浏览器(如Chrome、Firefox、Edge、Safari)的对比

浏览器如Chrome、Firefox、Edge等在功能、性能、隐私保护等方面各有特点。以下是对这些浏览器的详细对比&#xff0c;帮助你选择合适的浏览器。 1. Google Chrome 市场份额&#xff1a;Chrome是目前市场上最流行的浏览器&#xff0c;约占全球浏览器市场的65%以上。 性能&#…...

nginx搭建直播推流服务

文章目录 学习链接步骤使用nginx搭建直播推流服务安装依赖库下载nginx-http-flv-module模块下载nginx解压nginx&#xff0c;进入nginx目录设置nginx编译配置编译并安装配置nginx rtmp服务启动nginx 准备另外一台电脑下载OBS下载OBS windows | linux 安装vlc观看直播flv协议hls协…...

单片机-- 松瀚sonix学习过程

硬件&#xff1a;松瀚sn8f5701sg、SN-LINK 3 Adapter模拟器、sn-link转接板 软件&#xff1a; keil-c51&#xff08;v9.60&#xff09;&#xff1a;建立工程&#xff0c;编辑&#xff0c;烧录程序 SN-Link_Driver for Keil C51_V3.00.005&#xff1a;安装sonix设备包和snlin…...

循环神经网络:从基础到应用的深度解析

&#x1f35b;循环神经网络&#xff08;RNN&#xff09;概述 循环神经网络&#xff08;Recurrent Neural Network, RNN&#xff09;是一种能够处理时序数据或序列数据的深度学习模型。不同于传统的前馈神经网络&#xff0c;RNN具有内存单元&#xff0c;能够捕捉序列中前后信息…...

从扩散模型开始的生成模型范式演变--SDE

SDE是在分数生成模型的基础上&#xff0c;将加噪过程扩展时连续、无限状态&#xff0c;使得扩散模型的正向、逆向过程通过SDE表示。在前文讲解DDPM后&#xff0c;本文主要讲解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 实例&#xff0c;连接到 ZooKeeper 服务器 zk KazooClient(hosts127.0.0.1:2181) zk.start()# 定义节点路径 path…...

【设计模式系列】解释器模式(十七)

一、什么是解释器模式 解释器模式&#xff08;Interpreter Pattern&#xff09;是一种行为型设计模式&#xff0c;它的核心思想是分离实现与解释执行。它用于定义语言的文法规则&#xff0c;并解释执行语言中的表达式。这种模式通常是将每个表达式抽象成一个类&#xff0c;并通…...

只出现一次的数字

只出现一次的数字 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算法只使用常量额外空间。 示例 1 &#xff…...

SpringMVC-08-json

8. Json 8.1. 什么是Json JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式&#xff0c;目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写&#xf…...

技术文档的语言表达

技术文档的语言表达 在这个瞬息万变的技术世界中&#xff0c;了解如何撰写有效的技术文档显得尤为重要。无论是开发团队还是最终用户&#xff0c;清晰、简洁且有条理的文档都是连接各方的桥梁。本文将深入探讨技术文档的语言表达&#xff0c;从其重要性、写作原则到各种类型&a…...

UEFI 事件

UEFI 不再支持中断&#xff08;准确地说&#xff0c;UEFI 不再为开发者提供中断支持&#xff0c;但在UEFI内部还是使用了时钟中断&#xff09;&#xff0c;所有的异步操作都要通过事件&#xff08;Event&#xff09;来完成。 启动服务为开发者提供了用于操作事件、定时器及TPL…...

大师开讲-图形学领域顶级专家王锐开讲Vulkan、VSG开源引擎

王锐&#xff0c;毕业于清华大学&#xff0c;图形学领域顶级专家&#xff0c;开源技术社区的贡献者与推广者。三维引擎OpenSceneGraph的核心基石开发者与维护者&#xff0c;倾斜摄影数据格式osgb的发明人。著有《OpenSceneGraph 3 Cookbook》,《OpenSceneGraph 3 Beginers Guid…...

小F的矩阵值调整

问题描述 小F得到了一个矩阵。如果矩阵中某一个格子的值是偶数&#xff0c;则该值变为它的三倍&#xff1b;如果是奇数&#xff0c;则保持不变。小F想知道调整后的矩阵是什么样子的。 测试样例 样例1&#xff1a; 输入&#xff1a;a [[1, 2, 3], [4, 5, 6]] 输出&#xff1a…...

ORB-SLAM2 ----- LocalMapping::SearchInNeighbors()

文章目录 一、函数意义二、函数讲解三、函数代码四、本函数使用的匹配方法ORBmatcher::Fuse()1. 函数讲解2. 函数代码 四、总结 一、函数意义 本函数是用于地图点融合的函数&#xff0c;前面的函数生成了新的地图点&#xff0c;但这些地图点可能在前面的关键帧中已经生成过了&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个开源的应用容器引擎&#xff0c;基于Go 语言并遵从 Apache2.0 协议开源。 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。 容器是完全使用沙箱机制&#xff0c;相…...

Mybatis:CRUD数据操作之多条件查询及动态SQL

Mybatis基础环境准备请看&#xff1a;Mybatis基础环境准备 本篇讲解Mybati数据CRUD数据操作之多条件查询 1&#xff0c;编写接口方法 在 com.itheima.mapper 包写创建名为 BrandMapper 的接口。在 BrandMapper 接口中定义多条件查询的方法。 而该功能有三个参数&#xff0c;…...

【笔记】轻型民用无人驾驶航空器安全操控

《轻型民用无人驾驶航空器安全操控》 理论考试培训材料 法规部分 【民用无人驾驶航空器的分类】 1、如何定义微型、轻型无人驾驶航空器&#xff1f; 微型无人驾驶航空器&#xff0c;是指空机重量小于0.25千克&#xff0c;最大平飞速度不超过40千米/小时&#xff0c;无线电发…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...