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.
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
.
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.
Gracias por sus comentarios. Saludos y éxito