64 统计字母

作者: 朱星垠 时间限制: 1S章节: 字符串

问题描述 :

输入一串字符串,以’!'结束,不分大小写,统计其中每种英文字符出现的次数。

输入说明 :

你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组输入数据由一行组成,其中只包括大小写的英文字母和’!’,且以’!'结尾,每行字符数不超过100。两组数据之间没有多余的空行。在行首和行尾没有多余的空格。

输出说明 :

对每组测试数据,你的程序需要向标准输出设备(通常为启动该程序的终端)依次输出一组对应的答案。每组测试数据由若干行组成,统计每组输入数据输出中出现字母的次数,按照字典序输出,每个出现字母及其出现次数占据一行。在行首和行尾没有多余的空格。具体格式见下。

输入范例 :

asdfasdf!
aAZZz!!

输出范例 :

A:2
D:2
F:2
S:2
A:2
Z:3

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void sort_str(char str[],int arr[],int x)//给char数组排序,并改变相对应的计数数组
{int i,j,count;char temp;for(i=0;i<x;i++){for(j=i+1;j<x;j++){if(str[i]>str[j]){temp=str[i];str[i]=str[j];str[j]=temp;count=arr[i];arr[i]=arr[j];arr[j]=count;}}}
}
void upper(char *p,int x)//把数组内字母直接全部改为大写
{int i;for(i=0;i<x;i++){if(*(p+i)>='a'&&*(p+i)<='z')*(p+i)-=32;//小写的ascii码比大写大32}
}
int main()
{void sort_str(char a[],int b[],int x);void upper(char *p,int x);char str[100];char *p=str;int len,i,j,k;while(gets(str)){int arr[100]={0};len=0;for(i=0;str[i]!='!';i++)len++;upper(p,len);for(i=0;i<len;i++){for(j=0;j<i;j++){if(str[i]==str[j]){arr[j]++;for(k=i;k<len;k++)str[k]=str[k+1];i--;//删除后数组中原本的i+1还未判断。len--;}}}sort_str(str,arr,len);for(i=0;i<len;i++)printf("%c:%d\n",*(p+i),arr[i]+1);}return 0;
}

while中的gets(str)不能写成gets(str)!=EOF,因为gets()返回类型是指针,可以写成gets(str)!=NULL,但是没必要。

dhu复试基础——64 统计字母相关推荐

  1. dhu复试基础——71 单词统计

    71 单词统计 作者: 卢婷时间限制: 1S章节: 字符串 问题描述 : 输入一行字符,用函数编程统计其中有多少单词. 说明:以空格分隔开的任何字符串都认为是单词.比如"I'm"认 ...

  2. dhu复试基础——60 发牌

    60 发牌 作者: 朱星垠时间限制: 2S章节: 二维数组 问题描述 : 编制一个模拟发牌的程序.有编号为1,2,3,4四个人,将一付去掉大小怪的扑克按照如下顺序排列梅花c0-c12,方块d0-d12 ...

  3. dhu复试基础——76 字符串排序

    76 字符串排序 作者: ZhouMingLiang 时间限制: 1S章节: 字符串 问题描述 : 明明刚刚开始学英文,对于26个英文字母的顺序总是记不住,每次默写英文字母的时候,顺序总是前后颠倒.明 ...

  4. dhu复试基础——36 水果价格

    36 水果价格 作者: 朱星垠 时间限制: 1S章节: 循环 问题描述 : 一家水果店出售四种水果,每公斤价格的苹果(代码为a)1.5元,橘子(代码为o)1.4元,香蕉(代码为b)1.48元,菠萝(代 ...

  5. dhu复试基础——63 倒序

    63 倒序 作者: 孙辞海时间限制: 1S章节: 字符串 问题描述 : 编写程序,把一串字符以倒序的方式输出. 输入说明 : 你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据.第一行输入字符 ...

  6. 读取文件,并统计字母数、空格数、数字数

    源代码: 1 /*2 * FILE: p43_count.c3 * DATE: 201801064 * --------------5 * DESCRIPTION: 读取文件,并统计字母数.空格数.数 ...

  7. 字母使用频率统计c 语言编程,C语言统计字母使用频率

    与<C语言统计字母使用频率>相关的范文 实验一 一.实验名称:替代密码和置换密码的实现 二.实验目的:通过编程实现替代密码算法和置换密码算法,加深对古典密码体系的了解,为以后深入学习密码学 ...

  8. python统计字母空格个数_python统计字母、空格、数字等字符个数的实例

    如下所示: # -*- coding: utf-8 -*- # 要求:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. def count(s): count_a=count_z=c ...

  9. Java 统计字母个数

    统计字母个数 import java.io.*;//引入缓冲字符输入流类(BufferedReader)和字符输入流类(InputStreamReader) public class IfElseTe ...

最新文章

  1. 计算机xp怎么做备份,怎样备份xp系统电脑上的所有数据?在xp系统中备份所有文件的方法...
  2. [转]C# winForm 自定义鼠标样式的两种方法
  3. 数据库的缓存管理[ASPNET2.0深入挖掘系列听后感]
  4. Socket系列3 Socket服务端开发 数据的接收和发送
  5. 一个用Axure开发的安卓Android智能交通app的mockup
  6. 使用Unsafe真的是关于速度或功能吗?
  7. canvas图表(4) - 散点图
  8. define定义的函数如何引用_「C与指针心得」25.预处理器-宏函数
  9. python维度变换_Python NumPy用法
  10. 常用的sublime text 3插件
  11. Python | 多种编码文件(中文)乱码问题解决
  12. 通过html备份数据库文件,备份网站文件和数据库
  13. CSS3之图片3D翻转效果(网页效果--每日一更)
  14. 极简代码(一) —— class label 的统计计数
  15. 使用Dism++和Dism为优启通08PE添加驱动
  16. SAI2 安装及导入笔刷素材
  17. Android多媒体框架
  18. 报表工具都支持哪些数据源类型?
  19. 码流、单码流、双码流、多码流
  20. idm下载器如何使用 idm下载器使用技巧

热门文章

  1. 2018校招面经-深信服-网申-技术服务工程师挂面
  2. 报警系统QuickAlarm之报警规则的设定与加载
  3. 权限项目 1_搭建环境
  4. PDF文档的电子印章功能探究(三)
  5. VS2019社区版--WDK-win10-2004开发环境搭建
  6. 几种TFT-LCD屏幕接口的差别
  7. 深度学习调参技巧(一)
  8. 笔记-迎难而上之Java基础进阶8
  9. 成功斩获腾讯offer,分享我的面试经历(附书籍推荐)
  10. 网站关键词优化--如何优化6目标关键词