int *a,*b,*p; p = string; for (p = string; *p != '\0'; p++) { // check for odd length palindrome a = p-1; b = p+1; while (*a == *b && *a && *b) { //make sure string is prepended by a '\0' len++; } if (len > max_len) max_len = len; //check for even length palindrome if (*p != *(p+1)) continue; a = p-1; b = p+2; while (*a == *b && *a && *b) { //make sure string is prepended by a '\0' len++; } if (len > max_len) max_len = len; } return max_len;