C语言字符串回文 就是正序倒序读都一样

编写一个函数int palindrome(char *string),如果字符串string是回文,返回值为1,否则为0。“回文”指顺读、逆读都一样的字符串,例如”12321”、”abba”。

如题 我这个怎么会崩溃
int palindrome(char *string)
{
int ni = 0;

for (; string='\0'; ni++)
{
    if (string[ni] != string[5-1-ni] )
    {
        return 0;
        printf("return 0");
    }
    else
    {
        return 1;
        printf("return 1");
    }
}

}

void main()
{
char *string;
char str[20] = {0};
string = str;

printf("please input some string\r\n");
scanf("%s",string);

palindrome(string);

}

char str[20] = {0};
这么写,str是只读的。
应该用new/malloc分配string

#include
#include
int palindrome(char *str)
{
if (!str)
{
return -1;
}
int len = strlen(str);
int n = 0;
for (n;n<len/2 ; n++)
{
if (str[n] != str[len-n-1] )
{
printf("return 0");
return 0;

}
}
printf("return 1");
return 1;
}
void main()
{
char str[20] = {0};

printf("please input some string\r\n");
scanf("%s",str);

palindrome(str);

}

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