fcamuso

Corso C++ 36 - esercizi funzioni - A

Jun 7th, 2026
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.62 KB | None | 0 0
  1. import std;
  2.  
  3. //controllo password: deve essere
  4. // - lunga piu di 8 caratteri
  5. // - contenere almeno una maiuscola
  6. // - contenere almeno una cifra numerica
  7. // - contenere almeno un carattere speciale
  8. bool is_valid_password(const std::string& psw,
  9.                        const std::string& speciali="&^!£#")
  10. {
  11.     //guard clause (clausola di guardia)
  12.     if (psw.length() <8)
  13.         return false;
  14.    
  15.     //flag (segnalini)
  16.     bool trovata_maiuscola {false};
  17.     bool trovata_cifra{ false };
  18.     bool trovato_speciale{ false };
  19.  
  20.     for (char c : psw)
  21.     {
  22.         if (std::isupper(c))
  23.             trovata_maiuscola = true;
  24.        
  25.         if (std::isdigit(c))
  26.             trovata_cifra = true;
  27.  
  28.         if (speciali.contains(c))
  29.             trovato_speciale = true;
  30.  
  31.         if (trovata_maiuscola && trovata_cifra && trovato_speciale)
  32.             return true;
  33.     }
  34.  
  35.     return false;
  36. }
  37.  
  38. auto main() -> int
  39. {
  40.     std::string psw {"abcd"};
  41.     std::println("{} {}", psw, is_valid_password(psw));
  42.  
  43.     psw="abcd1234";
  44.     std::println("{} {}", psw, is_valid_password(psw));
  45.    
  46.     psw = "abAdssdd";
  47.     std::println("{} {}", psw, is_valid_password(psw));
  48.  
  49.     psw = "aba1dssdd";
  50.     std::println("{} {}", psw, is_valid_password(psw));
  51.  
  52.     psw = "aba!dssdd";
  53.     std::println("{} {}", psw, is_valid_password(psw));
  54.  
  55.     psw = "aba!d4sdd";
  56.     std::println("{} {}", psw, is_valid_password(psw));
  57.  
  58.     psw = "aBa!dss2dd";
  59.     std::println("{} {}", psw, is_valid_password(psw));
  60.  
  61.     psw = "aBa!dss2dd";
  62.     std::println("{} {}", psw, is_valid_password(psw, "/#?"));
  63.  
  64.     psw = "aBa?dss2dd";
  65.     std::println("{} {}", psw, is_valid_password(psw, "/#?"));
  66.  
  67.     char s[] = "abcd";
  68.  
  69.     std::println("abcd {}", is_valid_password("abcd", "/#?"));
  70.  
  71.  
  72.  
  73. }
  74.  
Advertisement
Add Comment
Please, Sign In to add comment