#define _XOPEN_SOURCE #include #include #include #include int main(void) { if (!setlocale(LC_ALL, "")) return 1; #define P(f) \ puts(#f); \ for (int i =-1; i < 0x100; i++) { \ if (!(i & 0x3f)) putchar('\n'); \ fputc(f(i) ? (i & 0x80 ? '#' : 'x') : '.', stdout); \ if ((i & 0xf) == 0xf) putchar(' '); \ } \ putchar('\n') P(iscntrl); P(isspace); P(isblank); P(isdigit); P(isxdigit); P(islower); P(isupper); P(isalpha); P(isalnum); P(ispunct); P(isgraph); P(isprint); P(isascii); putchar('\n'); #undef P #define P(f, c) fputc(f(i) ? c : '.', stdout) for (int i =-1; i < 0x100; i++) { printf(" %3d %4x %c ", i, (unsigned short)i, isprint(i) ? i : ' '); P(iscntrl, 'c'); P(isspace, 's'); P(isblank, 'b'); P(isdigit, 'd'); P(isxdigit, 'x'); P(islower, 'L'); P(isupper, 'U'); P(isalpha, 'a'); P(isalnum, 'l'); P(ispunct, 'u'); P(isgraph, 'g'); P(isprint, 'p'); P(isascii, 'a'); printf(" %4x\n", (unsigned short)btowc(i)); } }