Changing a lowercase character to uppercase in c++

Manisha Singh Sanoo picture Manisha Singh Sanoo · Mar 15, 2014 · Viewed 55.2k times · Source

Here is the code that i wrote. When i enter a lowercase character such as 'a', it gives me a blank character but afterwards it works well. Can you tell me what i did wrong? Thanks. :)

#include <iostream>
#include <string>
using namespace std;

int main()
{
    char letter;

    cout << "You will be asked to enter a character.";
    cout << "\nIf it is a lowercase character, it will be converted to uppercase.";
    cout << "\n\nEnter a character. Press . to stop: ";

    cin >> letter;

    if(islower(letter))
    {
        letter = isupper(letter);
        cout << letter;
    }

    while(letter != '.')
    {
        cout << "\n\nEnter a character. Press . to stop: ";
        cin >> letter;

        if(islower(letter))
        {
            letter = toupper(letter);
            cout << letter;
        }
    }

    return 0;
}

Answer

herohuyongtao picture herohuyongtao · Mar 15, 2014

Because you print a bool value (i.e. false, aka, NUL character here) in the first time.

You should change

letter = isupper(letter);

to

letter = toupper(letter);