逆順回文 | spin on the RITZ

逆順回文

#include <stdio.h>
#include <string.h>

char *strrev(char *str);
int isPalindrome(char *str);

int main(void)
{
    char str1[] = "abcdefg";
    char str2[] = "hijkjih";

    printf("%s\n", str1);
    strrev(str1);
    printf("%s\n\n", str1);

    printf("%sは%s\n", str1,
            isPalindrome(str1)?"回文である":"回文でない");
    printf("%sは%s\n", str2,
            isPalindrome(str2)?"回文である":"回文でない");

    return 0;
}

char *strrev(char *str)
{
    int i, len = strlen(str);
    char tmp;
    for (i = 0;i < len/2;i++) {
        tmp = str[i];
        str[i] = str[len-1-i];
        str[len-1-i] = tmp;
    }
    return str;
}

int isPalindrome(char *str)
{
    int i, len = strlen(str);
    for (i = 0;i < len/2;i++)
        if (str[i] != str[len-1-i])
            return 0;
    return 1;
}



回文って、英語でpalindromeって言うんだね。知らなかった。