编写一个函数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>