함수 및 포인터를 활용하여 중복기능을 최대한 함수화하게 소스변경 도움좀요 ㅜㅠ!!
꽃내음
함수 및 포인터를 활용하여 분할하고, 중복기능을 최대한 함수화 하여 소스를 수정을 어떻게할가요?? 부탁드립니다
#include stdio.h
#include string.h
void main()
{
int i=0,j=0,Key_Size=0,str_size=0,select=1; // 변수 선언 초기화
char str[50]={0,},key[16]={0,}; //
printf(암호문 또는 평문 을 입력 : ); // 암호화(평문입력),복호화(암호문입력)
gets(str);
printf(암호는 1번, 복호는 2번 선택 : );
scanf(%d, &select); // 1번 암호화 / 2번 복호화
fflush(stdin); // 버퍼 제거
printf(키 값 입력(4자) : ); // 키값을 입력
gets(key); // key
str_size = strlen(str); // str 사이즈
Key_Size = strlen(key); // key 사이즈
for(i=0; istr_size; i++) // 반복문을 사용
{
j=i%Key_Size;
if(select == 1) { // 암호(아스키코드표 0~31은 문자가아님, 32부터~126까지 인식하도록 127 DEL이므로)
if((str[i] = 32) && (str[i] = 126))
{
str[i] -= 32; key[j] -= 32;
if( (str[i] + key[j]) 0)
str[i] += 95;
str[i] = (str[i] + key[j]) % 95;
str[i] += 32; key[j] += 32;
}
}
if(select == 2) // 복호(아스키코드표 0~31은 문자가아님, 32부터~126까지 인식하도록 127 DEL이므로)
{
if((str[i] = 32) && (str[i] = 126))
{
str[i] -= 32; key[j] -= 32;
if((str[i] - key[j]) 0)
str[i] += 95;
str[i] = (str[i] - key[j]) % 95;
str[i] += 32; key[j] += 32;
}
}
}
printf(\n암호화 또는 복호화된 결과 출력 : ); // 결과 출력
puts(str); //
}