A. 拼音魔法

原题链接
魔法学校小学一年级有一种题。就是给一个字的拼音,给一个声调,让你正确地注音。但魔法老师给了巨量的题,你不用魔法根本不可能做完。所以现在要让你发明一种魔法完成这个任务。

问题已经讲完了,下面开始教授汉语。(会汉语或者自认为会汉语的可以自动跳过)

汉语中一个字的拼音由声母和韵母两部分组成,在极少数情况下也会没有声母,但一定有韵母。

一般认为,声母有 b, p, m, f, d, t, l, n, g, k, h, j, q, x, z, c, s, zh, ch, sh, r, y, w;韵母有:a, e, o, i, u, ü, ai, ei, ui, ao, ou, iu, ie, üe, er, an, en, in, un, ün, ang, eng, ing, ong。

不是所有的字母都能组合的,组合的时候有时会发生一些神奇的事情,例如 üe 变成了 ue。但是标调规则有如下口诀:

有 a 先找 a,没 a 找 o e,i u 并排标在后,这样标调不会错。

只有下面列出的元素可能会被标调。请按照下表输出(尤其注意 a 不要输出成 ɑ 了):

第一声:ā ē ī ō ū ǖ。
第二声:á é í ó ú ǘ。
第三声:ǎ ě ǐ ǒ ǔ ǚ。
第四声:à è ì ò ù ǜ。
轻声:a e i o u ü。
辅助材料:由教育部公布的拼音方案。如果有描述不一致的地方,请以本题描述为准。

Input

第一行一个整数 。

下面 行,每行一个拼音:拼音声调在各个拼音之后,用数字 [1-4] 进行表示。例如 zhong1 guo2。没有数字的说明是轻声,不用标调。

按照国际惯例,输入文件全部由 ASCII 编码组成。ü 用 v 来代替。但在输出中,应仍然用 ü 来表示。

Output

对于每一组数据,输出 Case x: y。其中 x 是从 1 开始的测试数据编号,y 是一个拼音标调后的答案。

注意:对于非 ASCII 字符的输出,请使用 UTF-8 编码。

Examples

input

5
zhong1
guo2
me
que1
nv3

output

Case 1: zhōng
Case 2: guó
Case 3: me
Case 4: quē
Case 5: nǚ

注意两个点

  1. 汉语拼音不能用char数组存储

  2. 合理的拼音声调标注实际上有两种情况

    1,只出现一次"aoeiuv" (ha,yi,gun)直接按次序标注 2,连续两个字符是"aoeiuv"(xia,xiaoxiv)声调必然落在一个上(按规则分类标注)
    
#include<bits/stdc++.h>
using namespace std;
string bucket[6][5]={{"a","ā","á","ǎ","à"},{"o","ō","ó","ǒ","ò"},{"e","ē","é","ě","è"},{"i","ī","í","ǐ","ì"},{"u","ū","ú","ǔ","ù"},{"ü","ǖ","ǘ","ǚ","ǜ"}};
void trans(string s)
{bool flag=1;int l=s[s.length()-1]-'0';if(l>0&&l<5){for(int i=0;i<s.length()-1;i++){if(flag){switch(s[i]){case 'a':flag=0;cout<<bucket[0][l];break;case 'o':flag=0;cout<<bucket[1][l];break;case 'e':flag=0;cout<<bucket[2][l];break;case 'i':flag=0;if(i!=s.length()-1&&(s[i+1]=='a'||s[i+1]=='o'||s[i+1]=='e'||s[i+1]=='u')){flag=1;cout<<'i';}elsecout<<bucket[3][l];break;case 'u':flag=0;if(i!=s.length()-1&&(s[i+1]=='a'||s[i+1]=='o'||s[i+1]=='e'||s[i+1]=='i')){flag=1;cout<<'u';}elsecout<<bucket[4][l];break;case 'v':flag=0;cout<<bucket[5][l];break;default:cout<<s[i];break;}}elsecout<<s[i];}return;}else{for(int i=0;i<s.length();i++){if(s[i]=='v')cout<<"ü";elsecout<<s[i];}return;}
}
int main()
{int n;cin>>n;string s;for(int i=1;i<=n;i++){cin>>s;cout<<"Case "<<i<<": ";trans(s);if(i<n)cout<<endl;}return 0;
}

拼音魔法 使用switch case简化复杂的if else相关推荐

  1. python中有没有switch_为什么python没有switch/case

    为什么python没有switch/case 不同于其他编程语言,python中是没有switch/case 这种语法的,如果你是从其他语言转到python的,期初,对于没有switch/case 是 ...

  2. 拼音魔法-华东师范大学程序设计竞赛-ecnu3256

    拼音魔法click here 模拟题,轻声判断v转换为u还是ü:1至4升是一样的解法.先判断有无a o e, 若有,替换为带声调的:若无,继续判断有无i u,若有,替换:若无,继续判断有无v,若有,替 ...

  3. EOJ 3256:拼音魔法

    拼音魔法 Time limit per test: 1.0 seconds Time limit all tests: 1.0 seconds Memory limit: 256 megabytes ...

  4. 2017华东师范大学网赛-拼音魔法

    拼音魔法 Time limit per test: 1.0 seconds Time limit all tests: 1.0 seconds Memory limit: 256 megabytes ...

  5. switch case语法

    文章目录 switch case组合 不要拿青龙偃月刀去削苹果 case的作用是什么? break的作用是什么? case后面的值有什么要求吗? case语句的排列顺序问题 default语句相关问题 ...

  6. c#语言switch+case用法,C# switch case语句

    C# switch case 语句也是条件语句的一种,与上一节介绍的<C# if else语句>是类似的,但在判断条件的选择上会有一些局限性. 具体的语法形式如下. switch(表达式) ...

  7. A. 拼音魔法(模拟)

    摸了200+,丢人啊 A. 拼音魔法 Time limit per test: 1.0 seconds Time limit all tests: 1.0 seconds Memory limit: ...

  8. EOJ 3256 拼音魔法(string+char[]的使用技巧)

    拼音魔法 Time limit per test: 1.0 seconds Time limit all tests: 1.0 seconds Memory limit: 256 megabytes ...

  9. C语言case次数有限制吗,用switch...case语句统计数字、空格和其他字符出现的次数...

    //用switch...case语句统计数字.空格和其他字符出现的次数 //转自K&R #include int main(void) { int c, i, nwhite, nother, ...

最新文章

  1. DeepID2——强大的人脸分类算法
  2. 第七届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
  3. PHP代码审计笔记--变量覆盖漏洞
  4. linux 再多的running也挡不住锁
  5. Gompertz模型绘图 matlab,Logistic模型matlab求解
  6. Spring Boot文档阅读笔记-对Securing a Web Application解析
  7. 敏捷软件开发12条原则(译)
  8. C#自动属性及属性的简写形式
  9. 日常生活中使用计算机要注意事项有哪些,笔记本电脑日常使用注意事项以及保养技巧...
  10. 3乘3魔方第四步_三阶魔方第四步
  11. 数据结构课程设计项目2:校园导游咨询-预习报告
  12. 使用Seam-gen生成基础项目骨架
  13. 2015款Mac笔记本安装Windows10系统到外置移动硬盘教程
  14. Vue动态组件、组件缓存、组件激活和非激活、组件插槽、组件name
  15. Unrar解压缩.rar文件
  16. win10网络邻居看到linux,win10网络邻居找不到其他电脑怎么办
  17. 全国第一所蚂蚁链大学落地江西 2020区块链创新应用高峰论坛圆满落幕
  18. 有备无患!应届生CV算法岗面试指南
  19. 本地没有环境跑深度学习模型? 阿里云天池实验室它不香吗
  20. 怎么把模糊的照片变清晰?这篇文章告诉你

热门文章

  1. 卡梅隆对话刘慈欣:想看《三体》拍成电影
  2. Android Adapter接口的实现类总结
  3. 为什么李彦宏的这封信会刷屏朋友圈
  4. Mandatory和Optional
  5. linux ioctl网络参数设置,Linux 网络编程之ioctl函数
  6. ZLG CANalyst驱动安装报错
  7. 基础练习:1092:求出e的值
  8. java 风的角度转风向
  9. 会python_20小时学会Python,可能吗?
  10. 【Python学习】——读取HDF数据