Este programa solicita al usuario que introduzca un texto cualquiera, luego le pregunta si desea convertir el texto a mayúsculas o minúsculas mediante un menú de dos opciones. De acuerdo a la opción elegida, un bucle 'for' recorre cada letra del texto introducido y convierte las letras a mayúsculas o minúsculas. Finalmente, el programa imprime el texto convertido.

El programa utiliza la librería 'cctype' para convertir las letras de la cadena de texto a mayúsculas o minúsculas, según la opción elegida por el usuario. Esta librería proporciona las funciones 'tolower()' y 'toupper()' que convierten los caracteres a minúsculas y mayúsculas respectivamente.

El código ha sido probado en Code::Blocks en Windows, por lo que es completamente funcional.

#include <iostream>
#include <string>
#include <cctype>

using namespace std;

int main() {
  string input;
  int option;

  cout << "Introduce el texto a convertir: ";
  getline(cin, input);
  cout << std::endl;

  cout << "Seleccione una opción (1 o 2):\n";
  cout << "1. MAYÚSCULAS a minúsculas\n";
  cout << "2. minúsculas a MAYÚSCULAS\n";
  cin >> option;
  cout << std::endl;

  for (int i = 0; i < input.length(); i++) {
    if (option == 1) {
      input[i] = tolower(input[i]);
    } else if (option == 2) {
      input[i] = toupper(input[i]);
    }
  }

  cout << "El texto convertido es: " << input << endl;

  return 0;
}

Puedes descargar el código .CPP aquí.

NOTA: Si al correr el programa los acentos o caracteres especiales no se muestran correctamente, puedes usar esta solución: ¿Cómo mostrar acentos y caracteres especiales en programas escritos en C++?

Código cortesía de: Circuitoselectronicos.org