dhu复试基础——64 统计字母
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 统计字母相关推荐
- dhu复试基础——71 单词统计
71 单词统计 作者: 卢婷时间限制: 1S章节: 字符串 问题描述 : 输入一行字符,用函数编程统计其中有多少单词. 说明:以空格分隔开的任何字符串都认为是单词.比如"I'm"认 ...
- dhu复试基础——60 发牌
60 发牌 作者: 朱星垠时间限制: 2S章节: 二维数组 问题描述 : 编制一个模拟发牌的程序.有编号为1,2,3,4四个人,将一付去掉大小怪的扑克按照如下顺序排列梅花c0-c12,方块d0-d12 ...
- dhu复试基础——76 字符串排序
76 字符串排序 作者: ZhouMingLiang 时间限制: 1S章节: 字符串 问题描述 : 明明刚刚开始学英文,对于26个英文字母的顺序总是记不住,每次默写英文字母的时候,顺序总是前后颠倒.明 ...
- dhu复试基础——36 水果价格
36 水果价格 作者: 朱星垠 时间限制: 1S章节: 循环 问题描述 : 一家水果店出售四种水果,每公斤价格的苹果(代码为a)1.5元,橘子(代码为o)1.4元,香蕉(代码为b)1.48元,菠萝(代 ...
- dhu复试基础——63 倒序
63 倒序 作者: 孙辞海时间限制: 1S章节: 字符串 问题描述 : 编写程序,把一串字符以倒序的方式输出. 输入说明 : 你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据.第一行输入字符 ...
- 读取文件,并统计字母数、空格数、数字数
源代码: 1 /*2 * FILE: p43_count.c3 * DATE: 201801064 * --------------5 * DESCRIPTION: 读取文件,并统计字母数.空格数.数 ...
- 字母使用频率统计c 语言编程,C语言统计字母使用频率
与<C语言统计字母使用频率>相关的范文 实验一 一.实验名称:替代密码和置换密码的实现 二.实验目的:通过编程实现替代密码算法和置换密码算法,加深对古典密码体系的了解,为以后深入学习密码学 ...
- python统计字母空格个数_python统计字母、空格、数字等字符个数的实例
如下所示: # -*- coding: utf-8 -*- # 要求:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. def count(s): count_a=count_z=c ...
- Java 统计字母个数
统计字母个数 import java.io.*;//引入缓冲字符输入流类(BufferedReader)和字符输入流类(InputStreamReader) public class IfElseTe ...
最新文章
- 计算机xp怎么做备份,怎样备份xp系统电脑上的所有数据?在xp系统中备份所有文件的方法...
- [转]C# winForm 自定义鼠标样式的两种方法
- 数据库的缓存管理[ASPNET2.0深入挖掘系列听后感]
- Socket系列3 Socket服务端开发 数据的接收和发送
- 一个用Axure开发的安卓Android智能交通app的mockup
- 使用Unsafe真的是关于速度或功能吗?
- canvas图表(4) - 散点图
- define定义的函数如何引用_「C与指针心得」25.预处理器-宏函数
- python维度变换_Python NumPy用法
- 常用的sublime text 3插件
- Python | 多种编码文件(中文)乱码问题解决
- 通过html备份数据库文件,备份网站文件和数据库
- CSS3之图片3D翻转效果(网页效果--每日一更)
- 极简代码(一) —— class label 的统计计数
- 使用Dism++和Dism为优启通08PE添加驱动
- SAI2 安装及导入笔刷素材
- Android多媒体框架
- 报表工具都支持哪些数据源类型?
- 码流、单码流、双码流、多码流
- idm下载器如何使用 idm下载器使用技巧