0

I've got a pretty simple question. I'm trying to ask the player for to choose a difficulty. I want the case to be to not affect his choice, so I am using the toupper() function. Unfortunately, when I try to return the value of the difficulty, no matter what difficulty I choose, I receive 2009768935. However, when I enter an answer is all caps, avoiding the use of the toupper() function, everything turns out great.

Here is my code.

cout << "Choose a difficulty among Easy, Intermediate, and Hard.";
    string x;
    int difficulty;
    cin >> x;
    for (int i =0; i <=12; i++)
    { x[i] = x[toupper(i)]; }
    if (x == "EASY" )
    { difficulty = 0; }
    if (x == "INTERMEDIATE" ) 
    { difficulty = 1; }
    if (x == "HARD" )
    { difficulty = 2; }
    
    cout << difficulty;
6
Contributors
8
Replies
9
Views
9 Years
Discussion Span
Last Post by Cybulski
0

Hi
I think x [i] = toupper (x[i]) ; Also iterate to the length of the String. Not the fixed value. In the coding u specified 0 to 12.

0

why dont you do something like this

if (x == "EASY" || "easy" )
    { 
       difficulty = 0; 
    }
// and so on..
0

i believe your syntax is wrong
here i is an integer and you are converting that integer into upper case which is absurd.
the use of toupper function works differently

x=toupper(x);

0

> why dont you do something like this
> if (x == "EASY" || "easy" )

You've written (with red bits for clarity) if ( ( x == "EASY" ) || ( "easy" != NULL ) ) In essence, it's always true, because the right hand side is always true, and the OR makes the whole thing true.

0

thanx for the correction...didnt see it there.. but actully this was the intetion

if (x == "EASY" || x=="easy" )
0
#include <cctype> // for toupper()
#include <algorithm> // for transform()

transform(x.begin(), x.end(), x.begin(), toupper);

try this

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.