fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define MAX_USERS 10
  5. #define MAX_USERNAME_LENGTH 20
  6. #define MAX_PASSWORD_LENGTH 20
  7.  
  8. struct User {
  9. char username[MAX_USERNAME_LENGTH];
  10. char password[MAX_PASSWORD_LENGTH];
  11. };
  12.  
  13. struct User users[MAX_USERS];
  14. int numUsers = 0;
  15.  
  16. int registerUser(char username[], char password[]) {
  17. if (numUsers >= MAX_USERS) {
  18. printf("Cannot register more users. Maximum limit reached.\n");
  19. return 0;
  20. }
  21.  
  22. // Check if username already exists
  23. for (int i = 0; i < numUsers; i++) {
  24. if (strcmp(users[i].username, username) == 0) {
  25. printf("Username already exists. Please choose a different username.\n");
  26. return 0;
  27. }
  28. }
  29.  
  30. // Add user
  31. strcpy(users[numUsers].username, username);
  32. strcpy(users[numUsers].password, password);
  33. numUsers++;
  34. printf("User registered successfully.\n");
  35. return 1;
  36. }
  37.  
  38. int loginUser(char username[], char password[]) {
  39. for (int i = 0; i < numUsers; i++) {
  40. if (strcmp(users[i].username, username) == 0 && strcmp(users[i].password, password) == 0) {
  41. printf("Login successful. Welcome, %s!\n", username);
  42. return 1;
  43. }
  44. }
  45. printf("Invalid username or password. Please try again.\n");
  46. return 0;
  47. }
  48.  
  49. int main() {
  50. // Example usage
  51. registerUser("user1", "password123");
  52. registerUser("user2", "abc456");
  53.  
  54. loginUser("user1", "password123"); // Successful login
  55. loginUser("user2", "wrongpass"); // Unsuccessful login
  56.  
  57. return 0;
  58. }
  59.  
Success #stdin #stdout 0.01s 5304KB
stdin
Standard input is empty
stdout
User registered successfully.
User registered successfully.
Login successful. Welcome, user1!
Invalid username or password. Please try again.