/* File: mutual.c
   A program demonstrating mutual recursion.
*/

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

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) ;
}
