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;

}

点赞