home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
listings
/
v_09_01
/
9n01135a
< prev
next >
Wrap
Text File
|
1990-12-16
|
1KB
|
74 lines
/* show.c -- Demonstrates some character
printing functions */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define showx(a) printf(isprint(a) ? \
"%c": "\\x%\.2x", a)
void
showc( int c )
{
static char esc[ ] = "\a\b\t\n\r\f\v";
static char *ptr[ ] = {
"\\a", "\\b", "\\t", "\\n",
" \\r ", " \\ f ", " \\v "
};
char *s = strchr(esc, c);
if (s && c)
printf ( ptr[s-esc] );
else
showx( c );
}
void
showasciic(int c)
{
static char *a[ ] = {
"<NUL>", "<SOH>", "<STX>", "<ETX>",
"<EOT>", "<ENQ>", "<ACK>", "<BEL>",
"<BS>", "<HT>", "<LF>", "<VT>",
"<FF>", "<CR>", "<SO>", "<SI>",
"<DLE>", "<DCl>", "<DC2>", "<DC3>",
"<DC4>", "<NAK>", "<STN>", "<ETB>",
"<CAN>", "<EM>", "<SUB>", "<ESC>",
"<FS>", "<GS>", "<RS>", "<US>"
};
static char b[ ] =
" !\"#$%&'( )*+,-./0123456789:;<=>?" \
"@ABCDEFGHIJKLMNOPQRSTUVWXYZ [\\]^" \
"'abcdefghijklmnopqrstuvwxyz{|}~";
if (c & ~Ox7f) { /* not ASCII */
printf ("<");
showx(c);
printf ("?>");
}
else { /* ASCII */
if (c == Ox7f) /* DEL */
printf ("<DEL>");
else if (c & ~Oxlf) /* graphic */
putchar(b[c-32]);
else /* control */
printf (a[c]);
}
}
void
main(void)
{
int c;
for (c = -1; c < 129; c++)
showc (c);
putchar ('\n');
for (c=-1; c<129; c++)
showascii(c);
putchar ( ' \n ' );
}