HDU ACMstep1.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、处理:从问题的处理上出发,采用对元音辅音的区别进行区别输出;
         从字符的大小进行区别输出;
3、使用到的类库:输入输出流;
*/
这个为过了的代码。。。
#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;

}

你可能感兴趣的:(HDU ACMstep1.2.8 Vowel counting)