fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <cctype> // Untuk isupper, islower, isdigit
  4.  
  5. // Fungsi untuk menghitung jenis karakter dalam kata sandi
  6. std::string hitungKarakter(const std::string& password, int& hurufKapital, int& hurufKecil, int& angka, int& simbol) {
  7. hurufKapital = 0;
  8. hurufKecil = 0;
  9. angka = 0;
  10. simbol = 0;
  11.  
  12. for (char ch : password) {
  13. if (std::isupper(static_cast<unsigned char>(ch))) {
  14. hurufKapital++;
  15. } else if (std::islower(static_cast<unsigned char>(ch))) {
  16. hurufKecil++;
  17. } else if (std::isdigit(static_cast<unsigned char>(ch))) {
  18. angka++;
  19. } else {
  20. simbol++;
  21. }
  22. }
  23.  
  24. return password; // Return password untuk verifikasi jika diperlukan
  25. }
  26.  
  27. int main() {
  28. std::string password;
  29.  
  30. // Membaca input kata sandi (seluruh baris untuk menangani spasi)
  31. std::cout << "Masukkan kata sandi: ";
  32. std::getline(std::cin, password);
  33.  
  34. // Hapus spasi ekstra di awal/akhir jika diperlukan (mirip strip() di Python)
  35. size_t start = password.find_first_not_of(" \t");
  36. if (start == std::string::npos) {
  37. password = ""; // Kosong jika hanya spasi
  38. } else {
  39. size_t end = password.find_last_not_of(" \t");
  40. password = password.substr(start, end - start + 1);
  41. }
  42.  
  43. // Hitung karakter
  44. int hurufKapital, hurufKecil, angka, simbol;
  45. hitungKarakter(password, hurufKapital, hurufKecil, angka, simbol);
  46.  
  47. // Cetak hasil
  48. std::cout << "\nHasil analisis kata sandi:" << std::endl;
  49. std::cout << "Jumlah huruf kapital (A-Z): " << hurufKapital << std::endl;
  50. std::cout << "Jumlah huruf kecil (a-z): " << hurufKecil << std::endl;
  51. std::cout << "Jumlah angka (0-9): " << angka << std::endl;
  52. std::cout << "Jumlah simbol (lainnya): " << simbol << std::endl;
  53.  
  54. // Opsional: Total karakter
  55. int total = static_cast<int>(password.length());
  56. std::cout << "Total karakter: " << total << std::endl;
  57.  
  58. return 0;
  59. }
Success #stdin #stdout 0.01s 5332KB
stdin
Standard input is empty
stdout
Masukkan kata sandi: 
Hasil analisis kata sandi:
Jumlah huruf kapital (A-Z): 0
Jumlah huruf kecil (a-z): 0
Jumlah angka (0-9): 0
Jumlah simbol (lainnya): 0
Total karakter: 0