#include	<stdio.h>
#include	<ctype.h>

int alpha_test(int ch) { return isalpha(ch) != 0; }
int digit_test(int ch) { return isdigit(ch) != 0; }

int countchars(char *, int (*)(int));

int main()
{
	int	(*func)(int);

	func = alpha_test;
	printf ("alpha_test('h') = %d\n", (*func)('h'));

	func = digit_test;
	printf ("digit_test('h') = %d\n", func('h'));

	printf("Alphas: %d\n", countchars("1a2b3d4", alpha_test));
	printf("Digits: %d\n", countchars("1a2b3d4", digit_test));
	return 0;
}

int countchars(char *str, int (*fp)(int))
{
	int ret = 0;

	for (; *str; str++)
		ret += fp(*str);
	return ret;
}

