编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他 字符的个数,在主函数中输入字符串以及输出上述结果。

时间: 2023-11-17 15:06:39 浏览: 110
以下是实现该功能的代码: ```python def count_chars(string): letters = 0 digits = 0 spaces = 0 others = 0 for char in string: if char.isalpha(): letters += 1 elif char.isdigit(): digits += 1 elif char.isspace(): spaces += 1 else: others += 1 return letters, digits, spaces, others # 输入字符串 string = input("请输入字符串: ") # 统计字符数 letters, digits, spaces, others = count_chars(string) # 输出结果 print("字符串中字母的个数为:", letters) print("字符串中数字的个数为:", digits) print("字符串中空格的个数为:", spaces) print("字符串中其他字符的个数为:", others) ``` 该函数接收一个字符串作为参数,然后遍历该字符串中的每个字符,判断其是字母、数字、空格还是其他字符,最后统计出每个类别的字符个数,并将其作为元组返回。在主函数中,先输入字符串,然后调用 `count_chars` 函数统计字符个数,最后输出结果。

相关推荐

可以使用C语言的字符处理函数以及循环来实现这个功能。 以下是一个实现该功能的示例代码: c #include <stdio.h> #include <ctype.h> void count_chars(char *str, int *letters, int *digits, int *spaces, int *others) { char c; *letters = *digits = *spaces = *others = 0; while ((c = *str++) != '\0') { if (isalpha(c)) { (*letters)++; } else if (isdigit(c)) { (*digits)++; } else if (isspace(c)) { (*spaces)++; } else { (*others)++; } } } int main() { char str[100]; int letters, digits, spaces, others; printf("请输入一个字符串:\n"); fgets(str, sizeof(str), stdin); count_chars(str, &letters, &digits, &spaces, &others); printf("字母个数:%d\n", letters); printf("数字个数:%d\n", digits); printf("空格个数:%d\n", spaces); printf("其它字符个数:%d\n", others); return 0; } 在这个代码中,count_chars 函数接收一个字符串指针和四个整型指针作为参数,分别用来存储字母、数字、空格和其它字符的个数。在函数中,首先将这四个指针所指向的变量初始化为 0,然后使用循环遍历字符串中的每一个字符,并根据其类型来更新对应的计数器。循环结束后,函数返回,并将统计结果存储在四个指针所指向的变量中。 在 main 函数中,首先使用 fgets 函数读取用户输入的字符串,并将其存储在 str 数组中。然后,调用 count_chars 函数统计字符串中各种字符的个数,并将结果输出到控制台。
以下是一个使用 C 语言编写的函数,用于统计字符串中字母、数字、空格和其他字符的个数: c #include <stdio.h> #include <ctype.h> void count_chars(char *str, int *letters, int *digits, int *spaces, int *others) { int i = 0; char ch; while ((ch = str[i++]) != '\0') { if (isalpha(ch)) { (*letters)++; } else if (isdigit(ch)) { (*digits)++; } else if (isspace(ch)) { (*spaces)++; } else { (*others)++; } } } int main() { char str[100]; int letters = 0, digits = 0, spaces = 0, others = 0; printf("Enter a string: "); fgets(str, sizeof(str), stdin); count_chars(str, &letters, &digits, &spaces, &others); printf("The input string contains:\n"); printf("%d letters\n", letters); printf("%d digits\n", digits); printf("%d spaces\n", spaces); printf("%d other characters\n", others); return 0; } 在主函数中,我们首先定义了一个 char 类型的数组 str,用于存储输入的字符串。然后定义了四个 int 类型的变量 letters、digits、spaces 和 others,分别用于存储字母、数字、空格和其他字符的个数。 接下来我们使用 printf 函数输出提示信息,要求用户输入一个字符串。使用 fgets 函数从标准输入流中读取用户输入的字符串,并将其存储到 str 数组中。 然后我们调用 count_chars 函数,将 str 数组以及指向变量 letters、digits、spaces 和 others 的指针作为实参传递给函数。在函数内部,我们使用 while 循环遍历字符串中的每个字符,使用 isalpha、isdigit 和 isspace 函数判断该字符是字母、数字还是空格,并对应地更新变量 letters、digits 和 spaces 的值。如果一个字符既不是字母、数字,也不是空格,则认为它是其他字符,并更新变量 others 的值。 最后在主函数中,我们使用 printf 函数输出统计结果。 注意,在本例中使用了指向变量的指针,原因是函数调用需要修改这些变量的值。

最新推荐

抖音上的给朋友发送天气的小程序.zip

如题,抖音小程序源码,易于运行部署,用于学习交流

300596利安隆财务报告资产负债利润现金流量表企业治理结构股票交易研发创新等1391个指标(2013-2022).xlsx

包含1391个指标,其说明文档参考: https://blog.csdn.net/yushibing717/article/details/136115027 数据来源:基于上市公司公告数据整理 数据期间:从具体上市公司上市那一年开始-2022年度的数据,年度数据 包含各上市公司股票的、多年度的上市公司财务报表资产负债表、上市公司财务报表利润表、上市公司财务报表现金流量表间接法、直接法四表合在一个面板里面,方便比较和分析利用 含各个上市公司股票的、多年度的 偿债能力 披露财务指标 比率结构 经营能力 盈利能力 现金流量分析 风险水平 发展能力 每股指标 相对价值指标 股利分配 11类财务指标分析数据合在一个面板里面,方便比较和分析利用 含上市公司公告的公司治理、股权结构、审计、诉讼等数据 包含1391个指标,如: 股票简称 证券ID 注册具体地址 公司办公地址 办公地址邮政编码 董事会秘书 董秘联系电话 董秘传真 董秘电子邮箱 ..... 货币资金 其中:客户资金存款 结算备付金 其中:客户备付金 .........

300649杭州园林财务报告资产负债利润现金流量表企业治理结构股票交易研发创新等1391个指标(2014-2022).xlsx

300649杭州园林财务报告资产负债利润现金流量表企业治理结构股票交易研发创新等1391个指标(2014-2022)

陕西高技术统计面板2021-2000生产经营产业发展RD经费支出新产品研发等682个指标.xlsx

本数据包含的682个统计指标详见: https://blog.csdn.net/yushibing717/article/details/136286889 如: 高技术产业_生产经营情况-高技术产业主要经济指标-企业数_个 高技术产业_生产经营情况-高技术产业主要经济指标-从业人员年平均人数_人 高技术产业_生产经营情况-高技术产业主要经济指标-当年价总产值_亿元 高技术产业_生产经营情况-高技术产业主要经济指标-资产总计_亿元 高技术产业_生产经营情况-高技术产业主要经济指标-主营业务收入_亿元 高技术产业_生产经营情况-高技术产业主要经济指标-利润总额_亿元 高技术产业_生产经营情况-高技术产业主要经济指标-利税_亿元 高技术产业_生产经营情况-高技术产业主要经济指标-出口交货值_亿元 高技术产业_生产经营情况-大中型企业高技术产业_生产经营情况-企业数_个 高技术产业_生产经营情况-大中型企业高技术产业_生产经营情况-从业人员年平均人数_人 ......

300668杰恩设计财务报告资产负债利润现金流量表企业治理结构股票交易研发创新等1391个指标(2014-2022).xlsx

300668杰恩设计财务报告资产负债利润现金流量表企业治理结构股票交易研发创新等1391个指标(2014-2022)

数据仓库数据挖掘综述.ppt

数据仓库数据挖掘综述.ppt

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire

springboot新闻信息管理系统开发技术文档更新

# 1. 系统概述 ## 1.1 项目背景 在当今信息爆炸的时代,新闻信息是人们获取信息的重要渠道之一。为了满足用户对新闻阅读的需求,我们决定开发一个新闻信息管理系统,该系统旨在提供便捷的新闻发布、浏览与管理功能,同时也要保证系统的性能和安全防护。 ## 1.2 系统目标与功能需求 系统的目标是构建一个高效、稳定、安全的新闻信息管理平台,主要包括但不限于以下功能需求: - 新闻信息的增加、修改、删除、查询 - 用户的注册、登录与权限控制 - 数据库性能优化与缓存机制实现 - 安全防护措施的设计与漏洞修复 ## 1.3 技术选型与架构设计 在系统设计中,我们选择采用Java

hive 分区字段获取10天账期数据

假设你的 Hive 表名为 `my_table`,分区字段为 `account_date`,需要获取最近 10 天的数据,可以按照以下步骤操作: 1. 首先,获取当前日期并减去 10 天,得到起始日期,比如: ``` start_date=$(date -d "10 days ago" +"%Y-%m-%d") ``` 2. 接下来,使用 Hive 查询语句从分区中筛选出符合条件的数据。查询语句如下: ``` SELECT * FROM my_table WHERE account_date >= '${start_date}' ```

生活垃圾卫生填埋场运营管理手册.pdf

生活垃圾卫生填埋场运营管理手册.pdf