본문 바로가기

시스템 프로그래밍/C/C++/C#

[C언어] Vigenere 알고리즘

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

void vigenere(char *str1, char *str2, char *str3);


int main(void)
{
 char word[100];
 char key[100];
 char chipstr[100];

 while(1)
 {
 puts("평문을 입력하시오");
 gets(word);
 puts("key 문자열을 입력하시오");
 gets(key);

 vigenere(word, key, chipstr);


 puts("암호화된 문자열입니다.");
 puts(chipstr);
 }

 return 0;
}


void vigenere(char *str1, char *str2, char *str3)
{
 int wlen;
 int i, tempn;


 wlen=strlen(str1);

 for(i=0;i<wlen;i++)
 {
  tempn=0;

  if(str1[i]>='a'&&str1[i]<='z')
   tempn+=str1[i]-'a';
  else if(str1[i]>='A'&&str1[i]<='Z')
   tempn+=str1[i]-'A';

  if(str2[i]>='a'&&str2[i]<='z')
   tempn+=str2[i]-'a';
  else if(str2[i]>='A'&&str2[i]<='Z')
   tempn+=str2[i]-'A';

  if(tempn>26)
   tempn-=26;

  str3[i] = tempn+'a';
 }
 str3[i]='\0';
}

'시스템 프로그래밍 > C/C++/C#' 카테고리의 다른 글

[C++] 1일차 복습  (0) 2015.01.28
[C/C++] 포인터도 증감이 가능할까?  (0) 2014.12.27
[C/C++] 분기(Goto)에 관하여  (0) 2014.12.23