티스토리 뷰

Study/C/C++

palindrome

synsun 2011. 2. 3. 16:42
#include <stdio.h>
 
#define MAXLEN 50 // 입력받을 최대 길이를 설정한다 
#define TRUE 1
#define FALSE 0
 
char input[MAXLEN];
char result[MAXLEN];
 
int len, pal;
 
void check_spell() // 영문자만 받아들인다
{
int i;
int j = 0;
 
for(i = 0 ; input[i] != NULL ; i++)
{
if( (input[i] >= 'a') && (input[i] <= 'z') ) // 소문자일경우
{
result[j] = input[i] - ('a' - 'A'); // 대문자로 result
j++;
}
else if( (input[i] >= 'A') && (input[i] <= 'Z') ) // 대문자일경우
{
result[j] = input[i]; // 그대로 result
j++;
}
}
 
len = j; // 영문자의 길이
}
 
void check_palindrome() // palindrome인지 확인
{
int i, j;
 
j = len - 1;
pal = TRUE; // 함수가 끝날때까지 FALSE가 되지 않으면 TRUE
 
for(i = 0 ; i != len ; i++)
{
if(result[i] != result[j]) // 거꾸로 읽어도 같지 않을경우
pal = FALSE; // FALSE
j--;
}
}     
 
void print_result()
{
printf("문자열 %s의 길이는 %d이고, palindrome이",result,len); 
 
if(pal)
printf("다.\n");
else
printf(" 아니다.\n"); 
}
 
 
int main(void)
{
gets(input);
 
check_spell();
check_palindrome();
 
print_result();
 
return 0;
}

'Study > C/C++' 카테고리의 다른 글

sparse matrix  (0) 2011.02.03
알파벳 빈도수 검출 두번째  (0) 2009.05.01
알파벳 빈도수 검출  (0) 2009.05.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함