/* ECP: FILEname=fig8_6.c */
/* 1*/   #include <stdio.h>
/* 2*/   #include <ctype.h>

/* 3*/   void
/* 4*/   PrintBool( int Val )
/* 5*/   {
/* 6*/       printf( "%6c", Val ? 'T' : 'F' );
/* 7*/   }

/* 8*/   main( void )
/* 9*/   {
/*10*/       unsigned char Ch = 0;

/*11*/       printf( "DEC OCT HEX CHAR ALPHA UPPER LOWER " );
/*12*/       printf( "DIGIT ALNUM  HEX  SPACE PUNCT\n" );
/*13*/       do
/*14*/       {
/*15*/           printf( "%3d %3o %3x ", Ch, Ch, Ch );

/*16*/           if( isgraph( Ch ) )
/*17*/               printf( "%4c", Ch );
/*18*/           else if( isprint( Ch ) )
/*19*/               printf( "  sp" );
/*20*/           else switch( Ch )
/*21*/           {
/*22*/               case '\a': printf( "bell" ); break;
/*23*/               case '\n': printf( "  nl" ); break;
/*24*/               case '\0': printf( "null" ); break;
/*25*/               case '\t': printf( " tab" ); break;
/*26*/               default  : printf( "\\%03o", Ch ); break;
/*27*/           }

/*28*/           PrintBool( isalpha( Ch ) );
/*29*/           PrintBool( isupper( Ch ) );
/*30*/           PrintBool( islower( Ch ) );
/*31*/           PrintBool( isdigit( Ch ) );
/*32*/           PrintBool( isalnum( Ch ) );
/*33*/           PrintBool( isxdigit( Ch ) );
/*34*/           PrintBool( isspace( Ch ) );
/*35*/           PrintBool( ispunct( Ch ) );

/*36*/           printf( "\n" );
/*37*/       } while( Ch++ != 127 );

/*38*/       return 0;
/*39*/   }
