C 言語の文字クラスの相関関係
C でプログラムを書いているとき isalpha とか isspace とか isgraph とか色色な文字クラス判定関数があるせいで混乱することがある。これらの文字クラスの関係はどうなっているのだろう。ということでこんな図を作ってみた。
この図をみると、lower クラスは alpha クラスに含まれていることとか print クラスと cntrl クラスは共通部分がないことなどが分かるというわけだ。なお、図には blank, space, xdigit クラスが載っていないので注意。
- lower ∪ upper ⊂ alpha
- alpha ∪ digit = alnum
- alnum ∪ punct ⊂ graph ⊂ print
- 空白 ∈ print
- print ∩ cntrl = ∅
- 空白 ∉ punct
- { 空白, \t } ⊂ blank ⊂ space
- space は punct, graph, cntrl と共通部分を持つかもしれない
- { 空白, \f, \n, \r, \t, \v, } ⊂ space
- space ∩ alnum = ∅
| 固定リンク
コメント