Prüfen Sie, ob eine Zeichenfolge in C @ palindrom is

Ich habe eine Frage zu diesem Code. Ich schreibe für eine Übung. Ich muss prüfen, ob eine Zeichenfolge palindrom ist. Ich kann die Deklaration der Funktion nicht ändern. Die Funktion gibt nur 1 zurück, wenn alle Buchstaben gleich sind (wie "aaaa"), aber wenn ich den Satz mit einem anderen Palindrom auflade (wie "anna"), gibt die Funktion 0 zurück. Ich kann nicht herausfinden, warum diese Appening. Vielen Dank!

char* cargar (char*);
int pali (char*);

int main()
{ 
   char*texto=NULL;
   texto=cargar(texto);
   int res=pali(texto);
   if(res==1){printf("\nPalindrome");}
   else printf("\nNot palindrome");

   return 0;
}

char* cargar (char*texto)
{
   char letra;
   int i=0;
   texto=malloc(sizeof(char));
   letra=getche();
   *(texto+i)=letra;
   while(letra!='\r'){
      i++;
      texto=realloc(texto,(i+1)*sizeof(char));
      letra=getche();
      *(texto+i)=letra;}
   *(texto+i)='\0';      
   return texto;
}

int pali (char* texto)
{
   int i;
   for(i=0;*(texto+i)!='\0';i++){
   }i--;
   if(i==0||i==1){return 1;}

   if(*texto==*(texto+i)){
      return pali(++texto);
   }
   else return 0;
}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage