Soluciones de Seguridad de Datos en C++ y Python

Utilidades

La clase Utils proporciona funciones de utilidad para determinar tipo de datos y validarlos.

Clase Utils

#ifndef UTILS_H
#define UTILS_H

#include 
using namespace std;

class Utils { // Clase para validar tipos de datos
public:
    bool esNumeroTarjeta(const string &dato); // Valida si un string es un número de tarjeta
    bool esCorreo(const string &dato); // Valida si un string es un correo
    bool esNombre(const string &dato); // Valida si un string es un nombre
};

#endif

Ejemplos de Uso

Validar Número de Tarjeta

// Función para saber si el dato es una tarjeta
bool Utils::esNumeroTarjeta(const string &dato) {
    // digitos de la tarjeta
    if (dato.length() != 16)
        return false;
    for (char c : dato) {
        if (!isdigit(c))
        return false; // solo acepta numeros
    }
    return true;
}

Resultado

El string "1234567890123456" es un número de tarjeta válido (true).

Validar Correo

// Función para validar si el dato es un correo
bool Utils::esCorreo(const string &dato) {
    size_t atPos = dato.find('@');
    size_t dotPos = dato.find('.', atPos);
    return atPos != string::npos && dotPos != string::npos;
}

Resultado

El string "juanperez@gmail.com" es un correo válido (true).

Validar Nombre

// Función para validar si el dato es un nombre
bool Utils::esNombre(const string &dato) {
    // comprobar que el dato contenga solo letras y espacios
    for (char c : dato) {
        if (!(isalpha(c) || c == ' '))
        return false;
    }
    return true;
}

Resultado

El string "Juan Perez" es un nombre válido (true).