Este código escrito en C++ te permitirá convertir un texto de mayúsculas o minúsculas o viceversa, dependiendo de la elección del usuario. Ha sido probado en Code::Blocks sobre Windows por lo que es completamente funcional.

 
#include <iostream>
#include <string>
#include <cctype>
#include <Windows.h>
#include <locale>

using namespace std;

int main() {
  // Estableciendo idioma español
        setlocale(LC_ALL, "Spanish"); // En Linux
        SetConsoleCP(1252);  // En Windows
        SetConsoleOutputCP(1252);

  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;
}
 

Descarga el archivo .CPP aquí.