티스토리 뷰
In CS50 class of edX,
두번째 과제였던 vigenere 방식인데,
이전 caesar 방식은 단순히 integer 형식의 key값을 준것과 다르게 vigenere 방식은 keyword를 기반으로 encode한다.
즉 keyword를 구성하는 alphabet이 caesar에서 말한 shift value가 되는 것이다.
역시 대충짜서 코드가 지저분하다.
일반 C에서 쓸 사람은 중간에 GetString()부분만 수정해주면 된다.
#include <stdio.h> #include <stdlib.h> #include <cs50.h> #include <string.h> #include <ctype.h> #define LOWER 97 #define UPPER 65 int main(int argc, char* argv[]) { if(argc != 2){ printf("you must enter single parameter to execute\n"); return 1; } string k = argv[1]; for( int i = 0; i < strlen(k); i++){ if(!isalpha(k[i])){ printf(" you should enter alphabet word as a keyword!\n"); return 1; } } int index = 0; int temp = 0; string input = GetString(); for ( int i = 0; i < strlen(input); i++){ if(islower(k[index % strlen(k)])) temp = (k[index % strlen(k)] - LOWER); else temp = (k[index % strlen(k)] - UPPER); if(isalpha(input[i])){ if(islower(input[i])) printf("%c", LOWER + (input[i] - LOWER + temp) % 26); else printf("%c", UPPER + (input[i] - UPPER + temp) % 26); index++; } else printf("%c", input[i]); } printf("\n"); return 0;
}
'Hobby > Code' 카테고리의 다른 글
[C] Squared Matrix transpose (0) | 2014.05.27 |
---|---|
[C] matrix multiplication using dynamic memory allocation (0) | 2014.05.27 |
[C] fifteen game (0) | 2014.05.26 |
[C] Caesar Cipher (1) | 2014.05.25 |
[ruby] Rock-Paper-Scissors class (0) | 2014.05.19 |
[ruby] Very simple class for dessert (0) | 2014.05.19 |
[Ruby] Palindrome, dictionary, anagram (0) | 2014.05.18 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- arduino
- Offline RL
- PowerPoint
- Off-policy
- Distribution
- TensorFlow Lite
- DepthStream
- Pipeline
- RL
- ai
- Gan
- processing
- ColorStream
- reward
- SketchFlow
- Kinect for windows
- dynamic programming
- Expression Blend 4
- 한빛미디어
- Variance
- Kinect SDK
- Windows Phone 7
- 파이썬
- Kinect
- End-To-End
- Policy Gradient
- 강화학습
- windows 8
- bias
- 딥러닝
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함