-
반응형123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475#include <stdio.h>#include <ctype.h>#include <string.h>void printCode(char code[]){int i;printf("--------------------------------------------------------\n");printf("alphabet:\tABCDEFGHIJKLMNOPQRSTUVWXYZ\n");printf("encoded:\t");for (i = 0; i < 26; i++)printf("%c", code[i]);printf("\n--------------------------------------------------------\n");}void makeCode(char code[], int distance){int i, j = 0;for (i = 26 - distance; j < 26; i++, j++){code[i] = 'A' + j;if (i >= 25)i = -1;}}void encode(char code[], char sentence[], char encodedSentence[]){int i, index;for (i = 0; sentence[i] != '\0'; i++){if (isalpha(sentence[i]) != 0){index = (int)(sentence[i] - 'A');encodedSentence[i] = code[index];}elseencodedSentence[i] = sentence[i];}encodedSentence[i] = '\0';}void clear_stdin(){int ch;while ((ch = getchar()) != EOF && ch != '\n') {};}int main(void){char code[26];int distance;char sentence[80], encodedSentence[80];printf("Enter a distance for encoding: ");scanf("%d", &distance);makeCode(code, distance);printCode(code);//fflush(stdin) 버퍼 비우는 코드인데, 동작을 안한다//while (getchar() != '\0'); 오류!clear_stdin();printf("Enter a sentence to encode: ");gets(sentence);printf("original sentence:\t");puts(sentence);encode(code, sentence, encodedSentence);printf("encoded sentence:\t");puts(encodedSentence);}
cs 결과:
반응형