HDU ACMsteps 1.2.8:: Vowel counting


/*
Vowel Counting
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2396 Accepted Submission(s): 1329

Problem Description
The "Vowel-Counting-Word"(VCW), complies with the following conditions.
Each vowel in the word must be uppercase.
Each consonant (the letters except the vowels) must be lowercase.
For example, "ApplE" is the VCW of "aPPle", "jUhUA" is the VCW of "Juhua".
Give you some words; your task is to get the "Vowel-Counting-Word" of each word.
 

Input
The first line of the input contains an integer T (T<=20) which means the number of test cases.
For each case, there is a line contains the word (only contains uppercase and lowercase). The length of the word is not greater than 50.
 

Output
For each case, output its Vowel-Counting-Word.
 

Sample Input

4
XYz
application
qwcvb
aeioOa

 

Sample Output

xyz
ApplIcAtIOn
qwcvb
AEIOOA

 

解决方案:
问题的细化:对于字符的处理,其ASCL码范围为:大写字母:65—90;小写字母:97—122;
         字母 大 小
            a 65 97
            e 69 101
            i 73 105
            o 79 111
            u 85 117
必备知识:元音:a e i o u,其余均为辅音;元音变为大写;
处理方式:
1、输入:采用cin.getline(char[] name ,number , end label)函数,处理一行字符串的输入,在行数上的控制采用while()循环;
2、处理:从问题的处理上出发,采用对元音辅音的区别进行区别输出;
         从字符的大小进行区别输出;
*/
这个为过了的代码。。。
#include<iostream>
using namespace std;
int main()
{
    int N;
    cin>>N;
    getchar();
    while(N--)
    {
        char vowel_counting[1000];
        cin.getline(vowel_counting,999,'\n');
        int i;
        for(i=0;i<strlen(vowel_counting);i++)
        {
            int Ascll=int(vowel_counting[i]);
            if(Ascll>=65&&Ascll<=90) //字母为大写的时候;
            {
                if(Ascll!=65&&Ascll!=69&&Ascll!=73&&Ascll!=79&&Ascll!=85)//字母不为元音;
                {
                    Ascll+=32;       //整型值加上32,变为小写的字母Ascll码值;
                    vowel_counting[i]=char(Ascll);
                }
            }
            else if(Ascll>=97&&Ascll<=122)
            {
                if(Ascll==97||Ascll==101||Ascll==105||Ascll==111||Ascll==117)//字母为元音;
                {
                    Ascll-=32;       //整型值减去32,变为大写写的字母Ascll码值;
                    vowel_counting[i]=char(Ascll);
                }
            }
        }
        for(i=0;i<strlen(vowel_counting);i++)
        {
            cout<<vowel_counting[i];
        }
    cout<<endl;
    }
    return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值