统计元音字母c语言

以下是一个简单的C语言程序,用于统计一段文本中的元音字母数量:

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main() {
  4.     char str[1000];
  5.     int vowels = 0;
  6.     
  7.     printf("请输入一段文本:\n");
  8.     fgets(str, sizeof(str), stdin);
  9.     
  10.     for (int i = 0; i < strlen(str); i++) {
  11.         if (str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' || str[i] == 'u') {
  12.             vowels++;
  13.         }
  14.     }
  15.     
  16.     printf("元音字母数量:%d\n", vowels);
  17.     
  18.     return 0;
  19. }

该程序首先定义了一个字符数组 str,用于存储用户输入的文本。然后,程序使用 fgets() 函数从标准输入中读取用户输入的文本。接着,程序使用一个循环遍历文本中的每个字符,如果该字符是元音字母,则将变量 vowels 加 1。最后,程序输出元音字母的数量。

请注意,这个程序假定输入的文本只包含 ASCII 字符。如果输入的文本包含非 ASCII 字符,则该程序可能无法正确地统计元音字母数量。此外,这个程序只统计了小写的元音字母。如果需要统计大写的元音字母,则可以将条件 str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' || str[i] == 'u' 修改为 str[i] == 'A' || str[i] == 'E' || str[i] == 'I' || str[i] == 'O' || str[i] == 'U'

当然,我们可以进一步扩展这个程序,让它更加强大和灵活。以下是一些建议:

  1. 区分大小写: 如果我们要统计大写和小写元音字母,可以在条件检查时同时包括大写和小写。修改条件为 str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' || str[i] == 'u' || str[i] == 'A' || str[i] == 'E' || str[i] == 'I' || str[i] == 'O' || str[i] == 'U'
  2. 处理非字母字符: 如果文本中包含非字母字符,如标点符号、数字或空格,我们可能希望忽略它们。可以在循环开始前添加一个条件检查,确保字符是字母。例如 if (str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z')
  3. 输入验证: 如果我们希望程序更健壮,可以添加输入验证。例如,可以检查输入是否超过了字符数组的长度,或者是否包含非法字符。
  4. 用户体验改进: 可以使用菜单驱动或命令行参数来改进用户体验。这样用户就不必每次都手动输入文本。
  5. 国际化: 如果你的程序需要支持非英语语言,可能需要考虑国际化。例如,元音字母的定义可能会因语言而异。
  6. 性能优化: 对于非常大的文本,这个程序可能会有性能问题。可以考虑使用更高效的数据结构和算法,如哈希表或计数器。
  7. 错误处理: 如果输入的文本包含非 ASCII 字符,可能会发生错误。可以考虑添加错误处理代码来处理这种情况。
  8. 代码重构和清晰度: 可以考虑重构代码以提高可读性和可维护性。例如,可以将条件检查部分提取到一个单独的函数中。
  9. 测试: 添加单元测试和集成测试以确保程序的正确性。
  10. 文档和用户手册: 编写文档和用户手册来解释如何使用程序和它的功能。

这些只是一些基本的建议,具体取决于你的需求和目标。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/182282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

消息队列好文收集

Kafka Kafka之ISR机制的理解-CSDN博客

关于神经网络,你不得不知的三大要点

什么是神经网络&#xff1f; 神经网络是一个具有相连节点层的计算模型&#xff0c;其分层结构与大脑中的神经元网络结构相似。神经网络可通过数据进行学习&#xff0c;因此&#xff0c;可训练其识别模式、对数据分类和预测未来事件。 神经网络将您的输入细分为多个抽象层。比…

Unity Instantiate的用法

之前总结Unity实例化物体的文章&#xff1a;Unity 实例化物体以及赋予到父物体之下-CSDN博客 现在回头看来&#xff0c;感觉总结得不够全面&#xff0c;尤其关于Instantiate的用法&#xff0c;过于简陋了。 关于Instantiate&#xff0c;它实际上有10个语法&#xff1a; Obje…

JavaScript编程进阶 – Return语句

JavaScript编程进阶 – Return语句 JavaScript Programming Advanced – Return Statement By JacksonML 就像人们习惯的函数一样&#xff0c;总觉得在函数体最后需要一个return语句&#xff0c;标志着函数的结束,就像下面这个函数 theFunc() 那样。 function theFunc() { re…

插入区间[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给你一个无重叠的 &#xff0c;按照区间起始端点排序的区间列表。在列表中插入一个新的区间&#xff0c;你需要确保列表中的区间仍然有序且不重叠&#xff08;如果有必要的话&#xff0c;可以合并区间&#xff09;。 示例 1&#x…

沈阳师范大学期末考试复习pta循环数组函数指针经典编程题汇总+代码分析

前言&#xff1a;临近期末&#xff0c;接下来给大家分享一些经典的编程题&#xff0c;方便大家复习。不一定难&#xff0c;但都是入门的好题&#xff0c;尽可能的吃透彻。因为据说期末考试的题很多来自pta上面的原题。 对于一些语言我是用c来写的&#xff0c;不妨碍理解&#…

Linux下文件操作函数

一.常见IO函数 fopen fclose fread fwrite fseek fflush fopen 运行过程 &#xff1a;打开文件 写入数据 数据写到缓冲区 关闭文件后 将数据刷新入磁盘 1.fopen 返回文件类型的结构体的指针 包括三部分 1).文件描述符&#xff08;整形值 索引到磁盘文件&#xff09;…

AI4S Cup学习赛-中枢神经系统药物研发:药物筛选与优化

赛题介绍 链接&#xff1a;Bohrium 案例广场 (dp.tech) 中枢神经系统类疾病长期以来存在着重要的临床未满足需求。据统计&#xff0c;在当前人口老龄化趋势下&#xff0c;阿兹海默&#xff08;AD&#xff09;、帕金森病&#xff08;PD&#xff09;等神经退行性疾病和脑癌、中…

智能视野:图像识别的全球技术革命

图像识别技术正在全球范围内引领着一场技术革命&#xff0c;为各个领域带来深刻的变革。这一全球性的技术演进不仅在商业和科学领域展现出巨大潜力&#xff0c;还为人们的日常生活提供了更智能、更便捷的体验。 1. 商业智能的崛起&#xff1a; 图像识别技术在商业领域发挥着关…

echarts图表显示不全

图表显示是显示了&#xff0c;但是没有展示全部&#xff0c;一看控制台div的高度只有1px了&#xff0c;手动修改高度也只是拉伸图表&#xff0c;并没有按规定的尺寸展示 随之开始思考为什么呢 ? ? ? 因为 Echarts 的依赖是惰性的&#xff0c;需要手动设置resize&#xff0…

LeetCode37. Sudoku Solver

文章目录 一、题目二、题解 一、题目 Write a program to solve a Sudoku puzzle by filling the empty cells. A sudoku solution must satisfy all of the following rules: Each of the digits 1-9 must occur exactly once in each row. Each of the digits 1-9 must oc…

《软件工程原理与实践》复习总结与习题——软件工程

软件生命周期 软件生命周期分为三个时期、八个阶段 软件定义时期&#xff1a; 1&#xff09;问题定义阶段&#xff1a;要解决什么问题 2&#xff09;可行性研究阶段&#xff1a;确定软件开发可行 3&#xff09;需求分析阶段&#xff1a;系统做什么 软件开发时期&#xff1a;…

单片机霍尔测速系统设计+源程序

一、系统方案 1、本设计采用52单片机作为主控器。 2、霍尔测速送到液晶1602。 3、蜂鸣器报警。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 void lcd_init()//液晶初始化函数* { write_1602com(0x38);//设置液晶工作模式&#xff0c;意思…

嵌入式八股 | 校招秋招 | 笔试面试 | 精选题目

欢迎关注微信公众号【赛博二哈】获取八股PDF 并加入嵌入式求职交流群。提供简历模板、学习路线、岗位整理等 欢迎加入知识星球【嵌入式求职星球】获取完整嵌入式八股。 提供简历修改、项目推荐、求职规划答疑。另有各城市、公司岗位、笔面难题、offer选择、薪资爆料等 嵌入式…

CSS预处理器(如Sass或Less):变量、嵌套规则和混合器等高级功能

在Vue项目中&#xff0c;可以使用CSS预处理器&#xff08;如Sass或Less&#xff09;来编写样式。 这些预处理器提供了一些高级功能&#xff0c;如变量、嵌套规则和混合器等。 1. 变量 在Sass中&#xff0c;我们可以使用$符号定义变量。这些变量方便我们在多个地方重复使用&a…

算法基础之模拟散列表

模拟散列表 核心思想&#xff1a;数组模拟冲突处理 拉链法 #include<iostream>#include <cstring>using namespace std;//找到的大于范围的最小质数const int N100003;//h[x]表示哈希后的数组 e,ne表示处理冲突的链表int h[N],e[N],ne[N],idx;void insert(int x)…

利用数据库的表,生成word文档的表结构注释说明

文章目录 1.场景说明2.解决办法3.生成文档3.1.实现思路3.2.引入Apache POI依赖3.3.获取表及表字段说明Mapper3.4.POI创建文档表格&#xff0c;并填充数据3.5.完整的接口下载代码3.6.效果展示 1.场景说明 在项目中表已经建立好了&#xff0c;但是现在想对外提供一个表的字段的描…

物联网开发(一)新版Onenet 基础配置

onenet新创建的账号&#xff0c;没有了多协议接入&#xff0c;只有新的物联网开放平台 第一讲&#xff0c;先给大家讲一下&#xff1a;新版Onenet 基础配置 创建产品 产品开发-->创建产品 产品的品类选择个&#xff1a;大致符合你项目的即可&#xff0c;没有影响 选择智…

watch函数与watchEffect函数

watach函数&#xff1a; 与vue2.x的配置功能一致 监视指定的一个或多个响应式数据, 一旦数据变化, 就自动执行监视回调 默认初始时不执行回调, 但可以通过配置immediate为true, 来指定初始时立即执行第一次 通过配置deep为true, 来指定深度监视 watchEffect函数&#xff1a;…

企业人力资源公司抖音直播招聘断播怎么处理?

企业人力资源公司抖音直播招聘断播怎么处理&#xff1f; 最直接的处理方式就是进行抖音直播招聘报白&#xff0c;报白后在直播和视频中发布招聘和企业信息&#xff0c;不用担心被封禁和限制流量。 可以通过抖音直播进行招聘&#xff0c;也可以在视频中添加小程序&#xff0c;…