#include <string.h> #include <stdio.h> #include <stdlib.h> #define ERROR '@' int palindrome_with_error(char* buf, size_t size) { char* tmp; size_t len; size_t i; buf[size] = '\0'; tmp = (char*) malloc(size); if (tmp==NULL) return -1; len = strlen(buf); for (i = len; i>=0; i--) { if (buf[i] == ERROR) return -1; tmp[len-i]=buf[i]; } int res = strcmp(buf, tmp); free(tmp); return res; } int main() { char a[10]; strcpy(a, "aba"); if (palindrome_with_error(a, 3)) printf( "OK\n"); }