目录
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 的环境中直接运行。