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

char *strrev(char *str)
{
    char *p1, *p2;

    if (! str || ! *str)
        return str;
    for (p1 = str, p2 = str + strlen(str) - 1; p2 > p1; ++p1, --p2)
    {
        char temp = *p1;
        *p1 = *p2;
        *p2 = temp;
    }
    return str;
}

int main(void) {
    int numberWantToCheck;
    printf("What's the number you want to check?\n");
    scanf("%d", &numberWantToCheck);
	int bufferSize = snprintf(NULL, 0, "%d", numberWantToCheck) + 1;

    char stringOfTheNum[bufferSize];
    char reversedNum[bufferSize];
    snprintf(stringOfTheNum, bufferSize, "%d", numberWantToCheck); // converte numero para String
    strcpy(reversedNum, stringOfTheNum); // copia a string para reversedNum
    strrev(reversedNum); // inverte reversedNum

    if(strcmp(reversedNum, stringOfTheNum) == 0) {
        printf("The number is palindrome.\n");
    } else {
        printf("The number is not palindrome.\n");
    }
}