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

使用C语言统计一个字符串中每个字母出现的次数

每日一言

Wishing is not enough; we must do.
光是许愿望是不够的; 我们必须行动。

题目

输入一个字符串,统计在该字符串中每个字母出现的次数
例如:
输入:i am a student
输出:a:2 d:1 e:1 i:1 m:1 n:1 s:1 t:2 u:1

大体思路

  1. 题目说输入一个字符串,还说要统计字符串中每个字母的次数,那么肯定要将输入的字符串存起来。
  2. 要统计每个字母出现的个数,那肯定要创建一个整形数组来存放出现次数。
  3. 想办法将字母与该字母出现的次数绑定在一块
  4. 输出

解题过程

  1. 创建一个数字数组和一个字符数组

  2. 将输入的字符串放在字符数组中(我在这里使用了gets函数)
    在这里插入图片描述

  3. 使用循环将字母与该字母出现的次数绑定在一块

#include<stdio.h>
int main()
{char arr1[100] = { 0 };int arr2[200] = { 0 };gets(arr1);int i = 0;for (i = 0; arr1[i] != '\0'; i++){arr2[arr1[i]]++;}return 0;
}

到这里肯定有人要问了:
临水你这循环里写的是什么玩意啊,我怎么有点迷迷糊糊的?
别急,让我给你慢慢道来
将arr1[i]放在arr2[]中,其实是将arr1[i]中的字符转换成对应的ASCII码值
如果arr1[i]中存放的是字符a,那么arr2[arr1[i]]等价于arr2[65]。最外面的++,表示在该位置上存的数加一

  1. 接下来就是输出了
#include<stdio.h>
int main()
{char arr1[100] = { 0 };int arr2[200] = { 0 };gets(arr1);int i = 0;for (i = 0; arr1[i] != '\0'; i++){arr2[arr1[i]]++;}for (i = 'a'; i<'z'; i++)//我在这里限定输出小写字母出现的次数{if (arr2[i] != 0)printf("%c:%d ", i, arr2[i]);//在这里i是字母的ASCII值}return 0;
}

if语句用来判断ASCII码值为 i 的字符串中是否出现过

试运行:
在这里插入图片描述


结语

请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
想成为大佬那就保持空杯心态加油努力吧!


都看到这里啦!真棒(*^▽^*)

可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家

编程小白写作,如有纰漏或错误,欢迎指正


http://www.lryc.cn/news/239930.html

相关文章:

  • 中国出海主力系列专访之三七互娱:亚马逊云科技助力三七互娱海外“出圈”之路
  • 算法刷题-动态规划2
  • 【Vue】自定义指令
  • MFC 中创建并显示二维码
  • NX二次开发UF_CAM_set_clear_plane_tag 函数介绍
  • 计算机网络:数据链路层
  • 电线电缆行业生产管理怎么数字化?
  • 计算机网络之数据链路层
  • 前端新手Vue3+Vite+Ts+Pinia+Sass项目指北系列文章 —— 系列文章(目录)
  • uniapp 给小程序添加分享功能
  • npm命令
  • Halcon Solution Guide I basics(3): Region Of Interest(有兴趣区域/找重点)
  • 以太坊铭文聚合交易平台 Scorpio,铭文爆发的新推手?
  • Socket通信之网络协议基本原理
  • linux 开发板以太网通过Ubuntu上外网方法
  • DependencyProperty.Register:wpf 向别的xaml传递参数
  • uvm白皮书练习_ch2_ch231_加入transaction
  • python-泛型实现,类型检查
  • 黑马React18: Redux
  • visionOS空间计算实战开发教程Day 5 纹理和材质
  • 低代码PaaS开发平台
  • 阿里云99元服务器ECS经济型e实例性能如何?测评来了
  • vue3-生命周期
  • 23. 深度学习 - 多维向量自动求导
  • 挺扎心!好不容易有了一个offer,就因为背调出之前有仲裁记录,offer黄了,这已经是第二次了!...
  • 【brpc学习实践四】异步请求案例详解
  • git命令 cherry-pick
  • 手动添加扩展到composer中
  • TCP/IP
  • NX二次开发UF_CAM_set_clear_plane_data 函数介绍