코딩/C언어

palindrome 판별 (대소문자 구분X)

런던전통손만두 2019. 9. 17. 14:46
반응형
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
#include <stdio.h>
 
int isPalindrome(char s[])
{
    int i, j, k = 0;
    char str[30];
 
    for (i = 0; s[i] != '\0'; i++)
    {
        if (isupper(s[i]))
        {
            str[k] = tolower(s[i]);
            k++;
        }
        else if (isalpha(s[i]))
        {
            str[k] = s[i];
            k++;
        }
    }
 
    str[k] = '\0';
 
    for (j = 0; j < k / 2 - 0.5 ; j++)
    {
        if (str[j] != str[k - 1 - j])
            return 0;
    }
    return 1;
}
 
int main(void)
{
    char str[30];
 
    gets(str); // 공백문자를 포함한 문자열을 읽으려면 gets를 써야함
 
    printf("%d\n", isPalindrome(str)); // 0 또는 1을 출력
}
cs

 

결과: 

반응형