Enmascarar una cadena con un carácter en C++

Introducción

No me gusta mucho programar en C++ ni en C, pero hay algunas ocasiones en las que es necesario. En esta ocasión tuve que enmascarar una cadena. Es decir, que algo como “Hola” se convierta en “****”. O en lugar de asteriscos, que se muestre un guión bajo o algún carácter.

La razón es que en un ejercicio de Arduino se tiene que pedir un código de acceso y luego se debe mostrar en una LCD ese código remplazado por asteriscos o algún otro símbolo. Debido a que (y espero que sea cierto) al programar en Arduino podemos usar las funciones nativas de C y CPP (o C++) hice una función en C++.

Solución

Es simple, crear una nueva cadena de longitud N y llenarla con el símbolo especificado. La función queda así:

string enmascarar(string cadenaOriginal, char mascara){
	return string(cadenaOriginal.length(), mascara);
}

Creamos una nueva cadena; su longitud será la misma que la que queremos enmascarar. Y vamos a llenarla con la máscara, que será de tipo char.

Para probar, hice este sencillo programa:

#include <iostream>
using namespace std;

string enmascarar(string cadenaOriginal, char mascara){
	return string(cadenaOriginal.length(), mascara);
}

int main(){
	cout << "\nenmascarar(\"132458\", '_'). Resultado --> " + enmascarar("132458", '_');
	cout << "\nenmascarar(\"Probemos :)\", '*'). Resultado --> " + enmascarar("Probemos :)", '*');
	cout << "\nenmascarar(\"Esta lleva números 123\", '0'). Resultado --> " + enmascarar("Esta lleva números 123", '0');
}

 

Compilando

Para compilar uso el compilador de MinGW llamado g++ corriendo sobre Windows. Simplemente corrí esto:

cls && g++ 2_EnmascararString.cpp -o 2_EnmascararString.exe && 2_EnmascararString.exe

Y los resultados son:

Obviamente la implementación depende de la situación en la que estemos. Espero poder traer el tutorial en Arduino más tarde.

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.

Dejar un comentario

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