163.牛语

163. [USACO Mat07] 牛语

☆   输入文件:latin.in   输出文件:latin.out   简单对比
时间限制:1 s   内存限制:128 MB

译: zqzas


奶牛们听说猪发明了一种秘密语言,叫做"猪语",因为猪不想让FJ知道他们在商量什么.奶牛们也感觉这样很不错,所以她们想发明他们自己的语言,牛语.

想把一个普通的英语单词转换成牛语很简单.如果一个单词的以一个元音字母('a','e','i','o','u)开头,那么只需在这个单词的结尾加上"cow".例如,"udder"需要变成"uddercow"; 如果一个单词的第一个字母不是元音字母,那么只需把这个单词的第一个字母放到单词结尾,然后再在结尾加上"ow".例如 "farmer"需要变成"armerfow". 所以"the cows escape at dawn"就会变成"hetow owscow escapecow atcow awndow." 奶牛们自信地以为这样就可以不让FJ知道他们的"越狱"计划.

可惜奶牛们都不是语言学家,他们觉得这样的翻译太无聊了,所以这个任务就交给你了. 你需要将N (1 ≤ N ≤ 100)个英语单词翻译成牛语,单词长度在3到40之间.


输入格式:

  • 第1行: 一个整数N.
  • 第2行到第N+1行: 每行一个单词.


输出格式:

  • 第1行到第N行,每行一个相应的牛语单词.

样例输入:

5

udder

farmer

milk

aaa

zzz

样例输出:

uddercow

armerfow

ilkmow

aaacow

zzzow

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<string>
 5 #include<cstdlib>
 6 using namespace std;
 7 char a[110][1000],can;  //110是单词个数;10000是单词;
 8 int main()
 9 {
10     freopen("latin.in","r",stdin);
11     freopen("latin.out","w",stdout);
12     int n,i,k,c;     //n为输入单词个数;
13     cin>>n;
14     for(i=1;i<=n;++i)
15     {
16         scanf("%s",&a[i]);     / /输入单词; 
17         c=strlen(a[i]);   //单词长度
18         if(a[i][0]=='a'||a[i][0]=='e'||a[i][0]=='i'||a[i][0]=='u'||a[i][0]=='o')
19             strcat(a[i],"cow");    //第一个字符是元音时;
20         else
21         {
22             can=a[i][0];    //第i个单词的第一个赋值给can;
23             for(k=0;k<c-1;++k)
24             {
25                 a[i][k]=a[i][k+1];    //第k个字符有下一个赋值
26             }
27             a[i][c-1]=can ;   //最后一个字符由can赋值
28             strcat(a[i],"ow");    //在新字符后加上“ow”
29         }
30     }
31     for(i=1;i<=n;++i)
32     puts(a[i]);   //输出
33     fclose(stdin);
34     fclose(stdout);
35     return 0;    
36 }
原文地址:https://www.cnblogs.com/mjtcn/p/6613585.html