rendered paste body#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>char* selectChars(char* from, int (*what)(int), int (*where)(int)){ char* str = (char*)malloc(sizeof(char)*(strlen(from) + 1)); char* ptr = str; while (*from != '\0') { if ((*where)(*from)) { *ptr++ = (what == NULL) ? *from : (*what)(*from); } from++; } *ptr = '\0'; return str;}int main(int argc, char** argv){ if (argc < 2) { puts("Come back with args."); return 0; } else { char* str = selectChars(argv[1], tolower, isalpha); char* start_longest = str; char* end_longest = str; char* longest; char* ptr = str; int longest_length = 1; int odds = 0; while (*ptr != '\0') { char* start = ptr - 1; char* end = ptr; int length = 0; if (odds) { end++; length++; ptr++; } odds = !odds; while (start >= str && *end != '\0' && *start == *end) { length += 2; start--; end++; } if (length > longest_length) { start_longest = start + 1; end_longest = end - 1; longest_length = length; } } longest = (char*)malloc(sizeof(char)*(longest_length + 1)); ptr = longest; while (start_longest <= end_longest) { *ptr = *start_longest; start_longest++; ptr++; } *ptr = '\0'; printf("\"%s\", length: %d\n", longest, longest_length); free(str); free(longest); return 0; }}