C++ show vowel and consonant and count it

前端 未结 3 1025
南旧
南旧 2021-01-26 01:47

When user input number from 1 - 26 (which mean a to z), how to show the the letter and count how many vowel and consonant inside it.

Example: U

相关标签:
3条回答
  • 2021-01-26 02:09

    To show the letters, you can use a for loop, using a char as index.

    int n = 13;
    unsigned int vowel = 0;
    unsigned int consonant = 0;
    int a = (int)'a';
    for (char letter = 'a'; (int)letter < a + n; letter++) {
        cout << letter << " ";
        if (is_vowel(letter)) vowel++;
        else consonant++;
    }
    cout << std::endl << "vowels: "<< vowel << " consonants: " << consonant << std::endl;
    

    So, you must implement the is_vowel method.

    0 讨论(0)
  • 2021-01-26 02:09

    Your if statement does not do what you expect it to. The correct syntax for this is

    if (let=='a' || let=='e' || let=='i' || let=='o' || let=='u')
    

    The reason the current versions is incorrect is because it is equivalent to

    if ((let=='a') or ('e') or ('i') or ('o') or ('u'))
    

    So 'e', 'i', etc are being evaluated for truthiness and ord to the first condition. Only an empty string in this case will evaluate to false, all of these characters will be true. So your statement evaluates to

    if ((let=='a') or true or true or true or true)
    

    Which will always be true.

    0 讨论(0)
  • 2021-01-26 02:19
    #include <iostream>
    using namespace std;
    
    /**
     * Checks if the given letter is a vowel.
     */
    bool isVowel(char let) {
        return let == 'a' || let == 'e' || let == 'i' || let == 'o' || let == 'u';
    }
    
    /**
     * Returns the character for the given int.
     */
    char toChar(int num) {
        return (char) ('a' + num - 1);
    }
    
    int main (void) {
        int vow = 0,
            con = 0,
            num,
            i;
        char let;
        cout << "Please enter a number: ";
        cin >> num;
        for (i = 1; i <= num; ++i) {
            let = toChar(i);
            if (isVowel(let)) vow++;
            else con++;
        }
        cout << "The letter was \"" << let
             << "\" and there were " << vow
             << " vowels and " << con
             << " consonants." << endl;
        return 0;
    }
    
    0 讨论(0)
提交回复
热议问题