/* Napisz program, który: - poprosi użytkownika o liczbę int z zakresu 10 - 50 i wczyta ją do łańcucha znaków - wywoła funkcję/procedurę (zdecyduj), która sprawdzi, czy w podanym łańcuchu są same cyfry, jeśli tak to dokona jego konwersji do wartości typu int, jeśli nie, będzie prosić dopóki użytkownik nie poda poprawnie - tak powstała wartość int będzie rozmiarem dwóch nowych łańcuchów znaków - poprosi użytkownika o wymyślenie hasła i powtórzenie go, a odpowiedzi przypisze do dwóch stringów - sprawdzi, czy hasła się zgadzają, a jeśli nie, poprosi o wymyślenie innego - wywoła funkcję/procedurę (zdecyduj), która sprawdzi, czy hasło zawiera co najmniej 1 dużą literę, 1 małą, jedną cyfrę i 1 znak specjalny. Jeśli tak, wyświetli komunikat, że hasło jest silne. */ #include #include #include #include #include void Konwersja( const char znaki[]); int Liczba(int liczba); void Haslo(char haslo1[]); int main() { const char znaki[10]; int liczba; char haslo1[20]; char haslo2[20]; Liczba(liczba); printf("Podaj lancuch znakow w ktorym wystepuja same cyfry\n\n"); scanf("%s", &znaki); Konwersja(znaki); do{ printf("Prosze wymysl haslo.\n HASLO: "); scanf("%s", haslo1); printf("Powtorz haslo. \nHASLO: "); scanf("%s", haslo2); }while( strcmp(haslo1,haslo2) != 0); Haslo(haslo1); return 0; } int Liczba(int liczba){ //nie jestem pewna czy o to chodzilo printf("Witaj! Podaj liczbe z zakresu 10-50"); scanf("%d", &liczba); while( liczba < 10 || liczba > 50 ){ printf( "Zle wybrana liczba. Spróbuj ponownie"); scanf("%d", &liczba); } return liczba; } void Konwersja( const char znaki[]){ int nowa; int tmp=0; int dlugosc = strlen(znaki); for(int i = 0 ; i < dlugosc ; i++){ if(isdigit(znaki[i])) //sprawdzanie kolejnych znakow tmp++; else{ printf("Sprobuj ponownie!"); //zmuszenie uzytkownika do podania wlasciwego lancucha scanf("%s", znaki); dlugosc = strlen(znaki); i=0; } } if(tmp == dlugosc) nowa=atoi(znaki); //konwersja char haslo1[nowa+1]; char haslo2[nowa+1]; return; } void Haslo(char haslo1[]){ int war1, war2, war3, war4 = 0; int dlugosc = strlen(haslo1); for(int i=0 ; i < dlugosc ; i++ ){ if(ispunct(haslo1[i])) war1++; if(isdigit(haslo1[i])) war2++; if(islower(haslo1[i])) war3++; if(isupper(haslo1[i])) war4++; } if(war1>=1 && war2>=1 && war3>=1 && war4>=1){ printf("Twoje haslo jest silne"); //informacja o hasle } return; }