EOJ 3256 拼音魔法
模拟。
有$a$先标$a$,其次是$o$和$e$,$o$和$e$在韵母中不会同时存在。最后是$u$和$i$,这两个字母在韵母中可能同时存在,标在后面的那个。输出那些字符的话直接输出就可以了。
举几个例子:
3
shui2
Case 1: shuí
liu2
Case 2: liú
lve4
Case 3: lüè
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std; char s[10000];
int T, len, cas = 1;
int diao; void A()
{
if(diao==1) printf("ā");
if(diao==2) printf("á");
if(diao==3) printf("ǎ");
if(diao==4) printf("à");
} void E()
{
if(diao==1) printf("ē");
if(diao==2) printf("é");
if(diao==3) printf("ě");
if(diao==4) printf("è");
} void I()
{
if(diao==1) printf("ī");
if(diao==2) printf("í");
if(diao==3) printf("ǐ");
if(diao==4) printf("ì");
} void O()
{
if(diao==1) printf("ō");
if(diao==2) printf("ó");
if(diao==3) printf("ǒ");
if(diao==4) printf("ò");
} void U()
{
if(diao==1) printf("ū");
if(diao==2) printf("ú");
if(diao==3) printf("ǔ");
if(diao==4) printf("ù");
} void V()
{
if(diao==1) printf("ǖ");
if(diao==2) printf("ǘ");
if(diao==3) printf("ǚ");
if(diao==4) printf("ǜ");
} void work()
{
int f=0;
for(int i=0;i<len-1;i++) if(s[i]=='a') f=1; if(f==1)
{
for(int i=0;i<len-1;i++)
{
if(s[i]=='a') A();
else
{
if(s[i]=='v') printf("ü");
else printf("%c",s[i]);
}
}
printf("\n");
return ;
} for(int i=0;i<len-1;i++) if(s[i]=='e') f=1; if(f==1)
{
for(int i=0;i<len-1;i++)
{
if(s[i]=='e') E();
else
{
if(s[i]=='v') printf("ü");
else printf("%c",s[i]);
}
}
printf("\n");
return ;
} for(int i=0;i<len-1;i++) if(s[i]=='o') f=1; if(f==1)
{
for(int i=0;i<len-1;i++)
{
if(s[i]=='o') O();
else
{
if(s[i]=='v') printf("ü");
else printf("%c",s[i]);
}
}
printf("\n");
return ;
} for(int i=0;i<len-1;i++) if(s[i]=='v') f=1; if(f==1)
{
for(int i=0;i<len-1;i++)
{
if(s[i]=='v') V();
else printf("%c",s[i]);
}
printf("\n");
return ;
} for(int i=len-1;i>=0;i--)
{
if(s[i]=='i') { f=1; break; }
if(s[i]=='u') { f=2; break; }
} if(f==1)
{
for(int i=0;i<len-1;i++)
{
if(s[i]=='i') I();
else
{
if(s[i]=='v') printf("ü");
else printf("%c",s[i]);
}
}
printf("\n");
return ;
} if(f==2)
{
for(int i=0;i<len-1;i++)
{
if(s[i]=='u') U();
else
{
if(s[i]=='v') printf("ü");
else printf("%c",s[i]);
}
}
printf("\n");
return ;
} } int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%s",s);
len = strlen(s); printf("Case %d: ",cas++);
if(s[len-1]>='0'&&s[len-1]<='9')
{
diao = s[len-1]-'0';
work();
}
else
{
for(int i=0;i<len;i++)
{
if(s[i]=='v') printf("ü");
else printf("%c",s[i]);
}
printf("\n");
}
}
return 0;
}
EOJ 3256 拼音魔法的更多相关文章
- A. 拼音魔法
A. 拼音魔法 Time limit per test: 1.0 seconds Time limit all tests: 1.0 seconds Memory limit: 256 megabyt ...
- 隐马尔科夫模型python实现简单拼音输入法
在网上看到一篇关于隐马尔科夫模型的介绍,觉得简直不能再神奇,又在网上找到大神的一篇关于如何用隐马尔可夫模型实现中文拼音输入的博客,无奈大神没给可以运行的代码,只能纯手动网上找到了结巴分词的词库,根据此 ...
- iOS 汉字的拼音
获取汉字的拼音 #import <Foundation/Foundation.h> @interface NSString (Utils) /** * 汉字的拼音 * * @return ...
- Oracle汉字转拼音package
--函数GetHzFullPY(string)用于获取汉字字符串的拼音 --select GetHzFullPY('中华人民共和国') from dual; --返回:ZhongHuaRenMinGo ...
- Ubuntu 下ibus拼音输入法启用 (ubuntu 16.04
Ubuntu 下ibus拼音输入法启用 我安装的是英文版的ubuntu 16.04,打开只带英文,并没有中文. 设置输入法为iBus 从system settings 进入language suppo ...
- JavaScript 汉字与拼音互转终极方案 附JS拼音输入法
转:http://www.codeceo.com/article/javascript-pinyin.html 前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的 ...
- lumia手机wp系统应用列表如何设置按照拼音
1.安装应用多了就会这样·· 2.想用拼音排列,请把系统设置里的区域语言中的区域和格式改为中国,此时,屏幕壁纸上是"四月十五日". 3.想用笔画排列,请把系统设置里的区域语言中的区 ...
- SQL汉字转拼音函数-支持首字母、全拼
SQL汉字转拼音函数-支持首字母.全拼 FROM :http://my.oschina.net/ind/blog/191659 作者不详 --方法一sqlserver汉字转拼音首字母 --调用方法 s ...
- Mono 3.2 测试NPinyin 中文转换拼音代码
C#中文转换为拼音NPinyin代码 在Mono 3.2下运行正常,Spacebuilder 有使用到NPinyin组件,代码兼容性没有问题. using System; using System. ...
随机推荐
- Linux系统调用和库函数
#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unist ...
- Python学习笔记(十)匿名函数
摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431843456 ...
- C11线程管理:异步操作
1.异步操作 C++11提供了异步操作相关的类,std::future.std::promise和std::package_task.std::future作为异步结果的传输通道,方便的获取线程函数的 ...
- 庞老师集群.ziw
2017年2月17日, 星期五 庞老师集群 链接:http://pan.baidu.com/s/1mhSw2TE 密码:hzz4 更改子网IP,及网关: null
- 游戏AI:行为树
Behavior Tree 行为树通过子Task的返回值决定整棵树的走向 Task 行为树上的每个节点都称为一个Task, 每个Task存在三种状态, success, failure, runnin ...
- iOS中响应者链条-触摸事件,hitTest方法坐标转换
总体来说,分2个步骤: 一,从上到下寻找合适的控件来处理这个触摸事件.如下图,如果点击了黄色4,则UIApplication -> UIWindow -> 1白色 -> 2橙色 -& ...
- python设计模式之迭代器与生成器详解(五)
前言 迭代器是设计模式中的一种行为模式,它提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示.python提倡使用生成器,生成器也是迭代器的一种. 系列文章 python设计模 ...
- 新一代的USB 3.0传输规格
通用序列总线(USB) 从1996问世以来,一统个人电脑外部连接界面,且延伸至各式消费性产品,早已成为现代人生活的一部分.2000年发表的USB 2.0 High-speed规格,提供了480Mbps ...
- 新装linux系统最基本设置
1,dns设置:vi /etc/resolv.conf 添加内容:nameserver 8.8.8.8 2,vi设置: vi ~/.bashrc 添加内容:alias vi='vim': 然后执 ...
- Linux运维常用的几个命令介绍【转】
Linux运维常用的几个命令介绍 1. 查看系统内核版本 [root@funsion geekxa]# cat /etc/issue CentOS release 6.5 (Final) Kerne ...