[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: What are the 94 printable characters from the 128 characters of ASCII table?



>>>>> yudi v <yudi.tux@gmail.com> writes:

 > Hi Paul,
 > I am pretty sure you are mistaken,

 > 126-32 = 94

	Let's try a simpler range: 32 to 32 is 1 character.  And 32 - 32
	is, obviously, zero.  Doesn't it seem like an off-by-one error?

 > and space is a printable character.

	Well, I don't have an opinion of my own, but here's what GNU
	Libc thinks on the issue:

$ cat < printable.c 
#define _GNU_SOURCE
#include <ctype.h>
#include <stdio.h>

int
main ()
{
  int i;

  for (i = 0; i < 256; i++) {
    printf ("  %02x %s%s",
	    i,
	    (isprint (i) ? "P" : " "),
	    ((1 + i) % 8 == 0
	     ? "\n" : ""));
  }

  /* . */
  return 0;
}
$ make printable 
cc     printable.c   -o printable
$ ./printable 
  00    01    02    03    04    05    06    07  
  08    09    0a    0b    0c    0d    0e    0f  
  10    11    12    13    14    15    16    17  
  18    19    1a    1b    1c    1d    1e    1f  
  20 P  21 P  22 P  23 P  24 P  25 P  26 P  27 P
  28 P  29 P  2a P  2b P  2c P  2d P  2e P  2f P
  30 P  31 P  32 P  33 P  34 P  35 P  36 P  37 P
  38 P  39 P  3a P  3b P  3c P  3d P  3e P  3f P
  40 P  41 P  42 P  43 P  44 P  45 P  46 P  47 P
  48 P  49 P  4a P  4b P  4c P  4d P  4e P  4f P
  50 P  51 P  52 P  53 P  54 P  55 P  56 P  57 P
  58 P  59 P  5a P  5b P  5c P  5d P  5e P  5f P
  60 P  61 P  62 P  63 P  64 P  65 P  66 P  67 P
  68 P  69 P  6a P  6b P  6c P  6d P  6e P  6f P
  70 P  71 P  72 P  73 P  74 P  75 P  76 P  77 P
  78 P  79 P  7a P  7b P  7c P  7d P  7e P  7f  
  80    81    82    83    84    85    86    87  
…
  f8    f9    fa    fb    fc    fd    fe    ff  
$ 

	So, as per GNU Libc, the printable ASCII characters are 0x20 to
	0x7e, inclusive, which amounts to (+ 1 #x7e #x-20) => 95
	characters overall.

-- 
FSF associate member #7257


Reply to: