All pastes #1979293 Raw Edit

Anonymous

public c v1 · immutable
#1979293 ·published 2010-11-02 02:51 UTC
rendered paste body
#include <stdlib.h>#include <string.h>#include <stdio.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;}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 = selectChars(str, tolower, isalpha);	char* backwards = reverse(selectChars(str, tolower, 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;}