글자의 순서를 일정 간격으로 밀어서 치환하는 방식은 시저 암호화 방식이다.

조건

  • 문자를 작성하고 암호화 할 때, 대문자는 뒤로 5칸 밀고, 소문자는 뒤로 10칸 밀게 한다.
    또한 숫자는 뒤로 3칸을 밀게 한다.

image

Source

#include<stdio.h>
#include<string.h>
#include<ctype.h>

int main(void) {
	char source[100] = "Welcome! 2018year!! Here is Dongguk!";
	char tmp;

	source[strlen(source)] = ' ';	//보정

	printf("%d\n", strlen(source));
	printf("%s\n", source);

	for (int i = 0; i < strlen(source); i++) {
		if (isupper(source[i])) {
			if (i + 5 >= strlen(source))
				source[i + 5] = source[i];
			else {
				tmp = source[i + 5];
				source[i + 5] = source[i];
				source[i] = tmp;
			}
		}
		else if (islower(source[i])) {
			if (i + 10 >= strlen(source))
				source[i + 10] = source[i];
			else {
				tmp = source[i + 10];
				source[i + 10] = source[i];
				source[i] = tmp;
			}
		}
		else if (isdigit(source[i])) {
			if (i + 3 >= strlen(source))
				source[i + 3] = source[i];
			else {
				tmp = source[i + 3];
				source[i + 3] = source[i];
				source[i] = tmp;
			}
		}
	}

	printf("%d\n", strlen(source));
	printf("%s", source);

	return 0;
}

태그:

카테고리:

업데이트: