void main() { char str[10], i; while(1) { cout << "단어를 입력해 주세요 : "; cin >> str; if(strcmp(str, "exit") == 0)break; for(i = 0; i < strlen(str); i++) { if(!(((str[i] >= 'a') && (str[i] <= 'z')) || ((str[i] >= 'A') && (str[i] <= 'Z')))) break; } if(i != strlen(str)) { cout << "잘못된 값을 입력하셨습니다." << endl; for(i = 0; i < 10; i++)str[i] = NULL; continue; } for(i = 0; i < (strlen(str) / 2); i++) { if(str[i] != str[strlen(str) - i - 1])break; } if(i == (strlen(str) / 2))cout << "회문입니다." << endl; else cout << "회문이 아닙니다." << endl; for(i = 0; i < 10; i++)str[i] = NULL; } }
프로그램 실행화면
회문을 판별해주는 프로그램이다. 회문이라함은 앞으로 읽으나 뒤로 읽으나 같은 말이 되는 단어이다. 단어의 글수가 짝수이든 홀수이든 상관없이 작동된다.
말로 설명하자만 teet를 판별한다고 했을 때 제일 첫 글자와 마지막 글자를 비교한다. 같다면 두번 째와 끝에서 두번째를 비교한다.
이렇게 계속 검사하되 단어의 글자수 / 2만큼 반복을 한다. 다른 글자가 없었다면 회문이고 다른 글자가 있었다면 회문이 아닌 것이다.