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.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

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