Aplicar la comparación de cadenas en un escenario del mundo real
En este paso, crearás un sistema simple de gestión de contraseñas que demuestre técnicas prácticas de comparación de cadenas.
- Crea un nuevo archivo llamado
password-manager.c
en el directorio ~/project
:
cd ~/project
touch password-manager.c
- Abre el archivo en WebIDE y agrega el siguiente código:
#include <stdio.h>
#include <string.h>
#define MAX_USERS 3
#define MAX_USERNAME 50
#define MAX_PASSWORD 50
// User structure to store credentials
struct User {
char username[MAX_USERNAME];
char password[MAX_PASSWORD];
char role[20];
};
int main() {
// Predefined user database
struct User users[MAX_USERS] = {
{"admin", "admin123", "administrator"},
{"manager", "manager456", "manager"},
{"user", "user789", "regular"}
};
char input_username[MAX_USERNAME];
char input_password[MAX_PASSWORD];
int login_success = 0;
printf("=== Simple Password Management System ===\n");
printf("Enter username: ");
scanf("%s", input_username);
printf("Enter password: ");
scanf("%s", input_password);
// Authenticate user with string comparison
for (int i = 0; i < MAX_USERS; i++) {
if (strcmp(users[i].username, input_username) == 0) {
if (strcmp(users[i].password, input_password) == 0) {
printf("Login Successful!\n");
printf("Role: %s\n", users[i].role);
login_success = 1;
break;
}
}
}
if (!login_success) {
printf("Login Failed. Invalid username or password.\n");
}
return 0;
}
- Compila el programa:
gcc password-manager.c -o password-manager
- Ejecuta el programa:
./password-manager
Ejemplos de interacción:
=== Simple Password Management System ===
Enter username: admin
Enter password: admin123
Login Successful!
Role: administrator
Enter username: user
Enter password: wrongpassword
Login Failed. Invalid username or password.
Puntos clave sobre este escenario del mundo real:
- Utiliza
strcmp()
para la verificación segura de credenciales.
- Demuestra la aplicación práctica de la comparación de cadenas.
- Implementa un sistema simple de autenticación.
- Muestra cómo comparar múltiples credenciales de usuario.