Hi, I'm writing a program that will identify whether or not the user's input string is a palindrome or not. However, the program keeps the inputed string is a palindrome eventhough it is not. It will say that the string is not a palindrome if the inputed string is a little bit longer. Please, help me!

Code:
#include <stdio.h>
#include <string.h>
#define MAX 50
int palindrome(char[]);

int main()
{
  char str[MAX];
  printf("Enter a string : ");
  scanf("%s",str);
  if(palindrome(str)==1)
  {
    printf("\nThe string is palindrome.\n");
  }
  else
  {
    printf("\nThe string is not palindrome.\n");
  }
  return 0;
}

int palindrome(char str[])
{
  int flag = 0;
  int start, end;
  char rev[MAX];
        // Create another string for checking.
  for(start=0;str[start]!='\0';start++)
  {
    rev[start] = str[start];
  }
        // Check whether the string is palindrome.
        // Using the user's input to check with the new string.
  for(start=0, end=strlen(str)-1; start<=end; start++, end--)
  {
    if(str[start] == rev[end])
    {
      flag = 1;
      return(flag);
    }
  }
  flag = 0;
  return (flag);
}