Show the types of all the ASCII characters
This is an example C program which prints what character types are true for all of the ascii characters from 0 to 127.
#include <ctype.h> #include <stdio.h> #include <string.h> /* Define a typedef for use in our struct. */ typedef int (*isfunc_t) (int); /* Define a macro to initialize the elements of the struct. */ #define F(x) {x, #x} struct iser { isfunc_t f; const char * name; } isers[] = { F (isalnum), F (isalpha), F (isascii), F (isblank), F (iscntrl), F (isdigit), F (isgraph), F (islower), F (isnumber), F (isprint), F (ispunct), F (isspace), F (isupper), F (isxdigit), }; #define n_isers (sizeof (isers)/sizeof (struct iser)) /* Print a header for the table, going vertically. */ static void print_header () { int i; int max_len = 0; int l[n_isers]; const char * spacer = " "; for (i = 0; i < n_isers; i++) { l[i] = strlen (isers[i].name); if (l[i] > max_len) { max_len = l[i]; } } for (i = 0; i < max_len; i++) { int j; printf ("%s|", spacer); for (j = 0; j < n_isers; j++) { if (i < l[j]) { printf ("%c|", isers[j].name[i]); } else { printf (" |"); } } printf ("\n"); } } static void print_types () { int c; for (c = 0; c < 128; c++) { int i; printf ("%02X %03o ", c, c); if (isprint (c)) { printf ("%c ", c); } else { printf ("-- "); } printf ("|"); for (i = 0; i < n_isers; i++) { int ok; ok = isers[i].f (c); if (ok) { printf ("O"); } else { printf ("X"); } printf ("|"); } printf ("\n"); } } int main () { print_header (); print_types (); return 0; }
The output of the example looks like this:
|i|i|i|i|i|i|i|i|i|i|i|i|i|i| |s|s|s|s|s|s|s|s|s|s|s|s|s|s| |a|a|a|b|c|d|g|l|n|p|p|s|u|x| |l|l|s|l|n|i|r|o|u|r|u|p|p|d| |n|p|c|a|t|g|a|w|m|i|n|a|p|i| |u|h|i|n|r|i|p|e|b|n|c|c|e|g| |m|a|i|k|l|t|h|r|e|t|t|e|r|i| | | | | | | | | |r| | | | |t| 00 000 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 01 001 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 02 002 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 03 003 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 04 004 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 05 005 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 06 006 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 07 007 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 08 010 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 09 011 -- |X|X|O|O|O|X|X|X|X|X|X|O|X|X| 0A 012 -- |X|X|O|X|O|X|X|X|X|X|X|O|X|X| 0B 013 -- |X|X|O|X|O|X|X|X|X|X|X|O|X|X| 0C 014 -- |X|X|O|X|O|X|X|X|X|X|X|O|X|X| 0D 015 -- |X|X|O|X|O|X|X|X|X|X|X|O|X|X| 0E 016 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 0F 017 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 10 020 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 11 021 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 12 022 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 13 023 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 14 024 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 15 025 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 16 026 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 17 027 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 18 030 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 19 031 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 1A 032 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 1B 033 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 1C 034 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 1D 035 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 1E 036 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 1F 037 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X| 20 040 |X|X|O|O|X|X|X|X|X|O|X|O|X|X| 21 041 ! |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 22 042 " |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 23 043 # |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 24 044 $ |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 25 045 % |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 26 046 & |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 27 047 ' |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 28 050 ( |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 29 051 ) |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 2A 052 * |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 2B 053 + |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 2C 054 , |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 2D 055 - |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 2E 056 . |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 2F 057 / |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 30 060 0 |O|X|O|X|X|O|O|X|O|O|X|X|X|O| 31 061 1 |O|X|O|X|X|O|O|X|O|O|X|X|X|O| 32 062 2 |O|X|O|X|X|O|O|X|O|O|X|X|X|O| 33 063 3 |O|X|O|X|X|O|O|X|O|O|X|X|X|O| 34 064 4 |O|X|O|X|X|O|O|X|O|O|X|X|X|O| 35 065 5 |O|X|O|X|X|O|O|X|O|O|X|X|X|O| 36 066 6 |O|X|O|X|X|O|O|X|O|O|X|X|X|O| 37 067 7 |O|X|O|X|X|O|O|X|O|O|X|X|X|O| 38 070 8 |O|X|O|X|X|O|O|X|O|O|X|X|X|O| 39 071 9 |O|X|O|X|X|O|O|X|O|O|X|X|X|O| 3A 072 : |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 3B 073 ; |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 3C 074 < |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 3D 075 = |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 3E 076 > |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 3F 077 ? |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 40 100 @ |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 41 101 A |O|O|O|X|X|X|O|X|X|O|X|X|O|O| 42 102 B |O|O|O|X|X|X|O|X|X|O|X|X|O|O| 43 103 C |O|O|O|X|X|X|O|X|X|O|X|X|O|O| 44 104 D |O|O|O|X|X|X|O|X|X|O|X|X|O|O| 45 105 E |O|O|O|X|X|X|O|X|X|O|X|X|O|O| 46 106 F |O|O|O|X|X|X|O|X|X|O|X|X|O|O| 47 107 G |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 48 110 H |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 49 111 I |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 4A 112 J |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 4B 113 K |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 4C 114 L |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 4D 115 M |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 4E 116 N |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 4F 117 O |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 50 120 P |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 51 121 Q |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 52 122 R |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 53 123 S |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 54 124 T |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 55 125 U |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 56 126 V |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 57 127 W |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 58 130 X |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 59 131 Y |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 5A 132 Z |O|O|O|X|X|X|O|X|X|O|X|X|O|X| 5B 133 [ |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 5C 134 \ |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 5D 135 ] |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 5E 136 ^ |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 5F 137 _ |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 60 140 ` |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 61 141 a |O|O|O|X|X|X|O|O|X|O|X|X|X|O| 62 142 b |O|O|O|X|X|X|O|O|X|O|X|X|X|O| 63 143 c |O|O|O|X|X|X|O|O|X|O|X|X|X|O| 64 144 d |O|O|O|X|X|X|O|O|X|O|X|X|X|O| 65 145 e |O|O|O|X|X|X|O|O|X|O|X|X|X|O| 66 146 f |O|O|O|X|X|X|O|O|X|O|X|X|X|O| 67 147 g |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 68 150 h |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 69 151 i |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 6A 152 j |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 6B 153 k |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 6C 154 l |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 6D 155 m |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 6E 156 n |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 6F 157 o |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 70 160 p |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 71 161 q |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 72 162 r |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 73 163 s |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 74 164 t |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 75 165 u |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 76 166 v |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 77 167 w |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 78 170 x |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 79 171 y |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 7A 172 z |O|O|O|X|X|X|O|O|X|O|X|X|X|X| 7B 173 { |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 7C 174 | |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 7D 175 } |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 7E 176 ~ |X|X|O|X|X|X|O|X|X|O|O|X|X|X| 7F 177 -- |X|X|O|X|O|X|X|X|X|X|X|X|X|X|
Copyright © Ben Bullock 2009-2024. All
rights reserved.
For comments, questions, and corrections, please email
Ben Bullock
(benkasminbullock@gmail.com).
/
Privacy /
Disclaimer