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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include<stdio.h> #pragma warning(disable:4996) void main() { char f = 'y'; while (f == 'y') { printf("위 프로그램은 펠린드럼 판별기입니다.\n\n\n"); int leng = 0; char ss[100] = "\0"; char tt[100] = "\0"; printf("판별하실 문자열을 입력하여 주십시오 : "); scanf("%s", ss); int k=1; while (ss[leng] != '\0') { leng++; } for (int i = 0; i < leng; i++) { tt[i] = ss[leng - 1 - i]; } tt[leng] = '\0'; for (int j = 0; j < leng; j++) { if (ss[j] != tt[j]) { k--; } } switch (k) { case 1:printf("펠린드럼 문자입니다.\n"); break; default:printf("펠린드럼 문자가 아닙니다.\n"); break; } getchar(); printf("계속하시겠습니까?(y/n)"); scanf("%c", &f); system("cls"); } } | cs |
바로 읽으나 거꾸로 읽으나, 같은 뜻으로 되는 '순역동의 문장 (順逆同意 文章)'을, '회문(回文)'이라고 하며, 영어로는 'Palindrome'입니다
라고 펠린드롬의 정의가 구글에 검색하면 나옵니다. (계속 펠린드럼,팰린드럼, 펜린드럼 쳤는데 안떠서 pelindrum 치니까 펭귄드럼 뜨더라구요;;)
eve,level.수박이 박수 이런 단어가 펠림드롬의 예라고 볼 수 있습니다.
일단 첫번째로는 유저가 y 나 n 중에 y를 입력하면 계속 작동하고 n을 입력하면 루프가 끝나 종료되게 합니다.
다음으로는 사용할 변수들을 선언해줍니다. 그 후에 문자열 두 가지를 입력받습니다.
그 후에 단어의 길이를 확인하기 위하여 while문을 통하여 문자열의 맨 끝 null 바이트 까지의 갯수를 구합니다.
일단 더 쉽게 코드 짜시고 싶으시면 #include<string.h>를 이용하여 strlen 함수를 사용하시면 더 쉽습니다.
그 다음에 문자열의 i 번째 단어를 다른 배열의 전체길이-1+i 번째 단어에 저장하여 두 문자열을 비교 함으로써 앞뒤로 똑같은 펠린드롬인지 확인하려합니다.
만약 두 문자열이 서로 다르다면 색인값을 1에서 0으로 바꿉니다.
최종적으로 색인값이 0이면 펠린드럼이 아니라는 값을 주고, 1이면 펠린드롬이라는 이라는 말을 해줍니다.
그 후에 유저에게 계속할지 안 할지 물어보고 만약 다시한다면 cmd 창을 clear합니다.
'C언어 공부하기 > C언어 예제' 카테고리의 다른 글
C언어 프로그래밍 예제 : 여러가지 변수 받기시 생기는 문제 (0) | 2020.04.07 |
---|---|
C언어 프로그래밍 예제 : 소수판별기 (0) | 2019.03.07 |
C언어 프로그래밍 예제 : 비밀번호 받아서 *로 출력하기 (0) | 2019.02.28 |
C언어 프로그래밍 예제 : 받은 문자 거꾸로 출력하기/ 받은 문자열 역순으로 출력하기 (0) | 2019.02.28 |
C언어 프로그래밍 예제 : 숫자 계산기 (0) | 2019.02.28 |