(程序设计方法与实践)一夜发白《千字文》

一夜发白《千字文》

Background

在古代中国,《三字经》、《百家姓》、《千字文》被合称为三、百、千,都是非常重要的启蒙教育课本,广为流传。而其中问世最早的《千字文》更凭借其优美的文字、华丽的辞藻成为中华传统文化的一个重要组成部分,得到了人们的普遍重视和喜爱。

现代人,一生中有机会通读千字文的机会是非常少的,很多理工科的大学生,完全没有听说过这篇神奇的文章,自然也会抱着“怀疑一切”的态度问,真的有这么神吗,真的一个重复的字都没有吗?耳听为虚,眼见为实,我们就来检验一下千字文中是不是真的没有重复的字。

不过在动手之前,先让我们花上几分钟的时间,读读《千字文》吧:简体中文版、正体中文版。

Description

请编写一个程序,从输入中读取一篇中文文章,并统计出该文章中 ASCII 字符以外的重复出现的每一个字重复出现的次数。

文章使用 UTF-8 编码,可能会出现任何可以用 UTF-8 编码表示的字符(不限于中文)。

文章中所有的字符在 UCS-2 能够表示的范围内,即字符的 Unicode 值用两个字节就可以表示。

Input

一篇文章,总字数不限、每行字符数不限。每个字重复出现的次数不超过 60000 次。

Output

按照 Unicode 编码从小到大的顺序,输出文章中 ASCII (0~127)字符以外的每一个重复出现过的字重复出现的次数。
每行包含三项内容,首先是重复的字符(以 UTF-8 编码输出),然后是该字符的 Unicode 编码值(十六进制输出,字母均使用小写,长度不足 4 位数的用 0 补齐),最后输出该字符的重复次数。

如果文章中没有出现重复的字,则输出No repeat!。

在这里插入图片描述

代码如下:

#include<string.h>  
#include<stdio.h>  
#include<math.h>  
int main(int argc, char const *argv[])  
{
     
    unsigned char ch,ch1,ch2;  
    int i,j,t,t2,t3,x,x2,x3;  
    long z[65536];  
    memset(z,0,sizeof(z))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值