1

Necesitaría una función que pueda convertir una variable "char" de minúscula a mayúscula después de ser ingresada. Conozco la función toupper() pero tengo entendido que esa solo funciona con cadenas de caracteres, y yo solo quiero trabajar con una variable.

Ej de lo que quiero hacer:

char tipo;
cout << "Tipo de consola (P = Portatil, M = De mesa): ";
cin >> tipo;
if( tipo != 'M' and tipo != 'P')
{
    cout << "Tipo de consola invalido.";
    return false;
}

Así como está funciona siempre y cuando se ingrese M o P, pero si se ingresa "m" o "p" el programa me rebota. no quiero agregar las minúsculas al "if" por que si no quedaría desprolijo.

FranciscoFJM
  • 81
  • 1
  • 8
  • 2
    Posible duplicado de [Poner un char en minúsculas usando C++](https://es.stackoverflow.com/q/66845/19610). **No** es un duplicado **exacto**, pero las respuestas allí dadas son perfectamente válidas en este caso, y proporcionan información muy útil sobre el tema. No creo que valga la pena el crear una nueva pregunta. – Trauma Jun 18 '17 at 20:45
  • Tienen razon, perdon por no revisar bien antes de preguntar! – FranciscoFJM Jun 18 '17 at 21:05
  • 1
    @FranciscoFJM Lee mejor la documentación de como funciona `toupper()`... – MindLerp Jun 19 '17 at 00:42
  • Já. Sería bueno que C++ tenga un método en la librería `` para convertir tooooda una cadena en mayúsculas o en minúsculas. – Xam Mar 18 '18 at 05:40

1 Answers1

3

Conozco la función toupper() pero tengo entendido que esa solo funciona con cadenas de caracteres.

Estás de suerte, porque estás equivocado, ni la versión C de toupper ni su homóloga toupper de C++ trabajan con cadenas de caracteres si no con caracteres sueltos. Así que sin miedo puedes usarlo:

char tipo;
std::cout << "Tipo de consola (P = Portatil, M = De mesa): ";
std::cin >> tipo;

tipo = std::toupper(tipo);

if( tipo != 'M' and tipo != 'P')
{
    cout << "Tipo de consola invalido.";
    return false;
}
PaperBirdMaster
  • 44,474
  • 6
  • 44
  • 82