/* File: mutual.c A program demonstrating mutual recursion. */ #include #include void count_alpha(char *) ; void count_non_alphas(char *) ; /* Global variables */ int alphas = 0 , non_alphas = 0 ; void count_alpha(char *s) { if (*s == '\0') return ; while( isalpha(*s) && (*s != '\0') ) { alphas++ ; s++ ; } count_non_alphas(s) ; } void count_non_alphas(char *s) { if (*s == '\0') return ; while( !isalpha(*s) && (*s != '\0')) { non_alphas++ ; s++ ; } count_alpha(s) ; } main() { int r ; char A[65] ; printf("Type in a string (< 64 characters): ") ; r = scanf("%64[^\n]", A) ; if (r < 1) { printf("You must enter a string with >1 character\n") ; exit() ; } count_alpha(A) ; printf("Input: %s\n", A) ; printf("Alphabetic characters: %d\n", alphas) ; printf("Other characters: %d\n", non_alphas) ; }