반응형
[10장 1번]
사용자로부터 암호를 입력받는다. 사용자의 암호가 해킹에 대한 안전도가 강력한지를 검사한다. 만약 암호 안에 대문자, 소문자, 숫자가 모두 들어있으면 강력한 암호로 간주한다. 만약 사용자의 암호가 3가지 종류의 문자를 다 가지고 있지 않으면 프로그램은 보안을 위하여 더 강력한 암호를 고려하라고 제안한다.
[풀이]
#include<stdio.h>
int check(char *str, char *str_check);
void set(char *str_check);
int main() {
char str[100];
char str_check[3] = { 0, };
do{
set(str_check);
printf("암호를 생성하시오 : ");
scanf("%s", str);
} while (check(str, str_check));
printf("적정한 암호입니다. \n");
return 0;
}
int check(char *str, char *str_check) {
int i;
for (i = 0; str[i]; i++) {
if ('0' < str[i] && '9' > str[i]) {
str_check[0] = 1;
}
else if ('a' < str[i] && 'z' > str[i]) {
str_check[1] = 1;
}
else if ('A' < str[i] && 'Z' > str[i]) {
str_check[2] = 1;
}
}
for (i = 0; i < 3; i++) {
if (str_check[i] != 1) {
printf("숫자, 소문자, 대문자를 섞어서 암호를 다시 만드세요! \n");
return 1;
}
}
return 0;
}
void set(char *str_check) {
int i = 0;
for (i = 0; i < 3; i++) {
str_check[i] = 0;
}
}
반응형
'Solution_ > C언어 콘서트' 카테고리의 다른 글
[c언어 콘서트] 10장 3번 (문자반복 횟수 계산) (0) | 2018.10.11 |
---|---|
[c언어 콘서트] 10장 2번 (비밀번호 입력) (4) | 2018.10.11 |
[c언어 콘서트] 9장 4번 (정수와 소수 출력) (0) | 2018.09.30 |
[c언어 콘서트] 9장 3번 (두개의 근 출력) (0) | 2018.09.30 |
[c언어 콘서트] 9장 2번 (역순 출력) (0) | 2018.09.30 |
댓글