rendered paste body#include <stdlib.h>#include <string.h>#include <stdio.h>int isAlpha(char ch){ return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z');}char* selectChars(char* from, int (*where)(char)){ char* str = (char*)malloc(sizeof(char)*(strlen(from) + 1)); char* ptr = str; while (*from != '\0') { if ((*where)(*from)) { *ptr++ = *from; } from++; } *ptr = '\0'; return str;}char* toLower(char* str){ char* ptr = str; while (*ptr != '\0') { if (*ptr >= 'A' && *ptr <= 'Z') { *ptr += 'a' - 'A'; } ptr++; } return str;}char* reverse(char* str){ char temp; char* front = str; char* back = str; while (*back != '\0') { back++; } back--; while (front < back) { temp = *back; *back = *front; *front = temp; front++; back--; } return str;}int isPalindrome(char* str){ char* forwards = toLower(selectChars(str, isAlpha)); char* backwards = reverse(toLower(selectChars(str, isAlpha))); int result = (strcmp(forwards, backwards) == 0); free(forwards); free(backwards); return result;}int main(int argc, char** argv){ if (argc < 2) { puts("Requires a string to check."); return 0; } if (isPalindrome(argv[1])) { puts("Is."); } else { puts("Isn't."); } return 0;}