Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I'm trying to convert my char array into all uppercases. For some reason, it comes out all uppercase with an extra lowercase letter at the end. (Ex: entering "wow" would have the output "WOWw") I've tried using a for loop and incrementing 'i' with that but that doesn't work either. What's wrong with my code?

int i=0;
char c;//added these in just in case I declared it wrong
char a[80], str(50);

while (a[i])
{
    c=a[i];
    putchar (toupper(c));
    i++;
}

cout << c << endl;

EDIT: Nevermind, figured it out now. It was a stupid mistake haha.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
286 views
Welcome To Ask or Share your Answers For Others

1 Answer

That is because you are explicitly outputting c after your loop is done. c holds the last character that was processed inside the loop. Simply remove that additional output, you don't need it.

while (a[i])
{
    c=a[i];
    //putchar (toupper(c));
    cout << (char) toupper(c);
    i++;
}

cout << /*c <<*/ endl; //<-- here

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...