Convertir cadena a mayúscula y minúscula en C++

Anteriormente vimos cómo convertir una cadena a mayúscula y minúscula en C. Ahora veremos cómo hacerlo en C++.

Aunque el código de C es compatible con el de C++, algunas cosas, por más mínimas que sean, cambian.

CPP – Convertir cadena a mayúscula y minúscula

Por otro lado, C++ agrega algunas cosas a las strings que nos permiten hacer más con menos código.

Explicación del algoritmo

Vamos a usar de nuevo las funciones toupper (convertir un carácter a mayúscula) y tolower (convertir un carácter a minúscula), solo que ahora las cadenas son más fáciles de manipular y proporcionan, por ejemplo, la función length.

Para convertir una cadena a mayúscula o minúscula recorremos la cadena carácter por carácter; y en cada iteración modificamos el carácter para que sea mayúscula o minúscula.

El ciclo irá desde 0 hasta cadena.length() -1, porque como lo dije, C++ proporciona más interactividad con las cadenas.

Convertir cadena a mayúscula y minúscula con C++

El programa queda así:

/*
	Convertir una cadena a mayúscula
	y a minúscula en C++ (CPP)

	@author parzibyte
*/
#include <iostream>

using std::string;
int main() {
  string cadena = "Parzibyte.me";

  std::cout << "Original: " + cadena;
  // Recorrer toda la cadena
  for (int i = 0; i < cadena.length(); i++) {
    // Y cambiar cada letra por su representación
    // mayúscula
    cadena[i] = toupper(cadena[i]);
  }
  std::cout << "\nMayúscula: " + cadena;
  // Para convertir a minúscula se usa tolower
  // Recorrer toda la cadena
  for (int i = 0; i < cadena.length(); i++) {
    // Y cambiar cada letra por su representación
    // minúscula
    cadena[i] = tolower(cadena[i]);
  }
  std::cout << "\nMinúscula: " + cadena;
}

Es una demostración que primero imprime la cadena normal; después la cadena en mayúscula y finalmente en minúscula.

Recuerda que cadena[i] se refiere al carácter de la cadena en el que estamos.

Funciones para convertir la cadena a mayúscula y minúscula

El código presentado anteriormente puede ser encerrado dentro de una función que recibe una cadena, la convierte a mayúscula o minúscula y la devuelve.

Queda así:

/*
        Funciones paraa convertir una cadena a mayúscula
        y a minúscula en C++ (CPP)

        @author parzibyte
*/
#include <iostream>
using std::string;
// Prototipo de funciones
string aMayuscula(string cadena);
string aMinuscula(string cadena);
int main() {
  string cadena = "Parzibyte.me";

  std::cout << "Original: " + cadena;
  string mayuscula = aMayuscula(cadena);
  std::cout << "\nMayúscula: " + mayuscula;
  string minuscula = aMinuscula(cadena);
  std::cout << "\nMinúscula: " + minuscula;
}

string aMayuscula(string cadena) {
  for (int i = 0; i < cadena.length(); i++) cadena[i] = toupper(cadena[i]);
  return cadena;
}
string aMinuscula(string cadena) {
  for (int i = 0; i < cadena.length(); i++) cadena[i] = tolower(cadena[i]);
  return cadena;
}

Es completamente el mismo código pero ahora se devuelve la cadena convertida, y el código queda más limpio.

Por cierto, se pueden simplificar los std::cout con un using std::cout.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

2 comentarios en “Convertir cadena a mayúscula y minúscula en C++”

  1. Es una pagina bastante intuitiva, yo probé el código y funciona a la perfección, excelente contenido, Gracias por tomarse la molestia de ensenarnos a todos. Continúa así. Bonito día.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *