string is ... provides a list of class types but doesn't indicate how a particular character is classified.
The following code produces a classification table for the characters in the range 0-127. Example output is also provided.
set classes { alnum alpha ascii boolean control digit double false graph integer lower print punct space true upper wordchar xdigit } proc classHeader {} { global classes puts {} set i 1 foreach class $classes { puts [format { %2s - %s} $i $class] incr i } puts {} puts -nonewline { } set i 1 foreach class $classes { puts -nonewline [format { %2s} $i] incr i } puts {} } proc reportClass c { global classes set result {} foreach class $classes { if {[string is $class $c] eq 1} { append result { Y} } else { append result { N} } } return $result } proc main {} { classHeader for {set n 0} {$n < 128} {incr n} { set c [format %c $n] if {[string is print $c]} { puts [format {%02X %1s %s} $n $c [reportClass $c]] } else { puts [format {%02X %s} $n [reportClass $c]] } } } main
Sample Output
1 - alnum 2 - alpha 3 - ascii 4 - boolean 5 - control 6 - digit 7 - double 8 - false 9 - graph 10 - integer 11 - lower 12 - print 13 - punct 14 - space 15 - true 16 - upper 17 - wordchar 18 - xdigit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 00 N N N N Y N N N N N N N N N N N N N 01 N N Y N Y N N N N N N N N N N N N N 02 N N Y N Y N N N N N N N N N N N N N 03 N N Y N Y N N N N N N N N N N N N N 04 N N Y N Y N N N N N N N N N N N N N 05 N N Y N Y N N N N N N N N N N N N N 06 N N Y N Y N N N N N N N N N N N N N 07 N N Y N Y N N N N N N N N N N N N N 08 N N Y N Y N N N N N N N N N N N N N 09 N N Y N Y N N N N N N N N Y N N N N 0A N N Y N Y N N N N N N N N Y N N N N 0B N N Y N Y N N N N N N N N Y N N N N 0C N N Y N Y N N N N N N N N Y N N N N 0D N N Y N Y N N N N N N N N Y N N N N 0E N N Y N Y N N N N N N N N N N N N N 0F N N Y N Y N N N N N N N N N N N N N 10 N N Y N Y N N N N N N N N N N N N N 11 N N Y N Y N N N N N N N N N N N N N 12 N N Y N Y N N N N N N N N N N N N N 13 N N Y N Y N N N N N N N N N N N N N 14 N N Y N Y N N N N N N N N N N N N N 15 N N Y N Y N N N N N N N N N N N N N 16 N N Y N Y N N N N N N N N N N N N N 17 N N Y N Y N N N N N N N N N N N N N 18 N N Y N Y N N N N N N N N N N N N N 19 N N Y N Y N N N N N N N N N N N N N 1A N N Y N Y N N N N N N N N N N N N N 1B N N Y N Y N N N N N N N N N N N N N 1C N N Y N Y N N N N N N N N N N N N N 1D N N Y N Y N N N N N N N N N N N N N 1E N N Y N Y N N N N N N N N N N N N N 1F N N Y N Y N N N N N N N N N N N N N 20 N N Y N N N N N N N N Y N Y N N N N 21 ! N N Y N N N N N Y N N Y Y N N N N N 22 " N N Y N N N N N Y N N Y Y N N N N N 23 # N N Y N N N N N Y N N Y Y N N N N N 24 $ N N Y N N N N N Y N N Y N N N N N N 25 % N N Y N N N N N Y N N Y Y N N N N N 26 & N N Y N N N N N Y N N Y Y N N N N N 27 ' N N Y N N N N N Y N N Y Y N N N N N 28 ( N N Y N N N N N Y N N Y Y N N N N N 29 ) N N Y N N N N N Y N N Y Y N N N N N 2A * N N Y N N N N N Y N N Y Y N N N N N 2B + N N Y N N N N N Y N N Y N N N N N N 2C , N N Y N N N N N Y N N Y Y N N N N N 2D - N N Y N N N N N Y N N Y Y N N N N N 2E . N N Y N N N N N Y N N Y Y N N N N N 2F / N N Y N N N N N Y N N Y Y N N N N N 30 0 Y N Y Y N Y Y Y Y Y N Y N N N N Y Y 31 1 Y N Y Y N Y Y N Y Y N Y N N Y N Y Y 32 2 Y N Y N N Y Y N Y Y N Y N N N N Y Y 33 3 Y N Y N N Y Y N Y Y N Y N N N N Y Y 34 4 Y N Y N N Y Y N Y Y N Y N N N N Y Y 35 5 Y N Y N N Y Y N Y Y N Y N N N N Y Y 36 6 Y N Y N N Y Y N Y Y N Y N N N N Y Y 37 7 Y N Y N N Y Y N Y Y N Y N N N N Y Y 38 8 Y N Y N N Y Y N Y Y N Y N N N N Y Y 39 9 Y N Y N N Y Y N Y Y N Y N N N N Y Y 3A : N N Y N N N N N Y N N Y Y N N N N N 3B ; N N Y N N N N N Y N N Y Y N N N N N 3C < N N Y N N N N N Y N N Y N N N N N N 3D = N N Y N N N N N Y N N Y N N N N N N 3E > N N Y N N N N N Y N N Y N N N N N N 3F ? N N Y N N N N N Y N N Y Y N N N N N 40 @ N N Y N N N N N Y N N Y Y N N N N N 41 A Y Y Y N N N N N Y N N Y N N N Y Y Y 42 B Y Y Y N N N N N Y N N Y N N N Y Y Y 43 C Y Y Y N N N N N Y N N Y N N N Y Y Y 44 D Y Y Y N N N N N Y N N Y N N N Y Y Y 45 E Y Y Y N N N N N Y N N Y N N N Y Y Y 46 F Y Y Y Y N N N Y Y N N Y N N N Y Y Y 47 G Y Y Y N N N N N Y N N Y N N N Y Y N 48 H Y Y Y N N N N N Y N N Y N N N Y Y N 49 I Y Y Y N N N N N Y N N Y N N N Y Y N 4A J Y Y Y N N N N N Y N N Y N N N Y Y N 4B K Y Y Y N N N N N Y N N Y N N N Y Y N 4C L Y Y Y N N N N N Y N N Y N N N Y Y N 4D M Y Y Y N N N N N Y N N Y N N N Y Y N 4E N Y Y Y Y N N N Y Y N N Y N N N Y Y N 4F O Y Y Y N N N N N Y N N Y N N N Y Y N 50 P Y Y Y N N N N N Y N N Y N N N Y Y N 51 Q Y Y Y N N N N N Y N N Y N N N Y Y N 52 R Y Y Y N N N N N Y N N Y N N N Y Y N 53 S Y Y Y N N N N N Y N N Y N N N Y Y N 54 T Y Y Y Y N N N N Y N N Y N N Y Y Y N 55 U Y Y Y N N N N N Y N N Y N N N Y Y N 56 V Y Y Y N N N N N Y N N Y N N N Y Y N 57 W Y Y Y N N N N N Y N N Y N N N Y Y N 58 X Y Y Y N N N N N Y N N Y N N N Y Y N 59 Y Y Y Y Y N N N N Y N N Y N N Y Y Y N 5A Z Y Y Y N N N N N Y N N Y N N N Y Y N 5B [ N N Y N N N N N Y N N Y Y N N N N N 5C \ N N Y N N N N N Y N N Y Y N N N N N 5D ] N N Y N N N N N Y N N Y Y N N N N N 5E ^ N N Y N N N N N Y N N Y N N N N N N 5F _ N N Y N N N N N Y N N Y Y N N N Y N 60 ` N N Y N N N N N Y N N Y N N N N N N 61 a Y Y Y N N N N N Y N Y Y N N N N Y Y 62 b Y Y Y N N N N N Y N Y Y N N N N Y Y 63 c Y Y Y N N N N N Y N Y Y N N N N Y Y 64 d Y Y Y N N N N N Y N Y Y N N N N Y Y 65 e Y Y Y N N N N N Y N Y Y N N N N Y Y 66 f Y Y Y Y N N N Y Y N Y Y N N N N Y Y 67 g Y Y Y N N N N N Y N Y Y N N N N Y N 68 h Y Y Y N N N N N Y N Y Y N N N N Y N 69 i Y Y Y N N N N N Y N Y Y N N N N Y N 6A j Y Y Y N N N N N Y N Y Y N N N N Y N 6B k Y Y Y N N N N N Y N Y Y N N N N Y N 6C l Y Y Y N N N N N Y N Y Y N N N N Y N 6D m Y Y Y N N N N N Y N Y Y N N N N Y N 6E n Y Y Y Y N N N Y Y N Y Y N N N N Y N 6F o Y Y Y N N N N N Y N Y Y N N N N Y N 70 p Y Y Y N N N N N Y N Y Y N N N N Y N 71 q Y Y Y N N N N N Y N Y Y N N N N Y N 72 r Y Y Y N N N N N Y N Y Y N N N N Y N 73 s Y Y Y N N N N N Y N Y Y N N N N Y N 74 t Y Y Y Y N N N N Y N Y Y N N Y N Y N 75 u Y Y Y N N N N N Y N Y Y N N N N Y N 76 v Y Y Y N N N N N Y N Y Y N N N N Y N 77 w Y Y Y N N N N N Y N Y Y N N N N Y N 78 x Y Y Y N N N N N Y N Y Y N N N N Y N 79 y Y Y Y Y N N N N Y N Y Y N N Y N Y N 7A z Y Y Y N N N N N Y N Y Y N N N N Y N 7B { N N Y N N N N N Y N N Y Y N N N N N 7C | N N Y N N N N N Y N N Y N N N N N N 7D } N N Y N N N N N Y N N Y Y N N N N N 7E ~ N N Y N N N N N Y N N Y N N N N N N 7F N N Y N Y N N N N N N N N N N N N N