# Les ASCII de 0 à 127/Fonctionnalités usuelles et algorithmes

L’ASCII se retrouve dans le programmation de logiciel à travers différentes librairies.

#### Classes de caractères POSIX

Puisque de nombreux sous-ensembles et étendues de caractères sont dépendants de la locale utilisée (par exemple, dans certaines configurations, les lettres sont organisées en abc...zABC...Z, mais comme aAbBcC...zZ dans d’autres), le standard POSIX définit certaines classes ou catégories de caractères comme montré dans la table ci-dessous :
| Classe POSIX | Description | Classe équivalente dans le jeu ASCII et la locale "C" |
| [:cntrl:] | Caractère de contrôle | [\x00-\x1F\x7F] |
| [:space:] | Espace blanc ou séparateur de ligne ou de paragraphe | [ \t\r\n\v\f] |
| [:blank:] | Espace blanc ou tabulation non séparateur de ligne ou de paragraphe | [ \t] |
| [:print:] | Espace simple ou caractère graphique visible (voir ci-dessous la différence avec Perl). | [\x20-\x7E] |
| [:graph:] | Caractère graphique visible | [\x21-\x7E] |
| [:punct:] | Caractère de ponctuation | [!"#$%&'*+,-.\/:;?@[\\\]_`{|}~] |
| [:alnum:] | Caractère alphanumérique | [0-9a-zA-Z] |
| [:digit:] | Chiffre décimal | [0-9] |
| [:xdigit:] | Chiffre hexadécimal | [0-9a-fA-F] |
| [:alpha:] | Caractère alphabétique | [a-zA-Z] |
| [:lower:] | Lettre minuscule | [a-z] |
| [:upper:] | Lettre capitale | [A-Z] |
Par exemple, [[:upper:]ab] fait correspondre un caractère parmi l’ensemble formé par l’union des lettres minuscules « a » et « b » et du sous-ensemble des lettres capitales.
Dans les expressions rationnelles de Perl, la classe [:print:] est définie différemment et correspond à [:graph:] union [:space:] (Perl y inclut donc les tabulations et séparateurs de lignes ou de paragraphes, contrairement à POSIX).
Une classe additionnelle non POSIX, supportée par certains outils, est [:word:] qui est généralement définie comme [:alnum:] plus le soulignement ; cela traduit le fait que dans bien des langages de programmation, ce sont les caractères qui peuvent être utilisés dans un identificateur. L’éditeur de texte Vim distingue encore les classes [:word:] et [:word-head:] (en utilisant aussi les notations supportées \w et \h) puisque dans nombre de langages de programmation, les caractères utilisables au début d’un identificateur ne sont pas les mêmes que ceux utilisables dans les autres positions.

## Ordre ASCII

L'ordre ASCII est parfois appelé ordre ASCIIbetical. La Collation des données est parfois faite dans cet ordre plutôt que dans l'ordre alphabétique usuel (collating sequence). Les principales déviations de l'ordre ASCII sont les suivantes:
* Toutes les lettres majuscules viennent avant chacune des lettres minuscules par exemple « X,Y,Z » avant « a,b,c »
* Les chiffres et des marques de ponctuation viennent avant les lettres par exemple « 4 » vient avant « un »
* Les nombres sont triés naïvement comme des mots par exemple « 10 » précède « 2 ».
* L'ASCII n'offre pas de moyen de placer les lettres accentuées qui ont été éradiquées de ce standard
Un ordre intermédiaire consiste à convertir les majuscules en minuscules avant d'effectuer l’ordonnancement des valeurs ASCII. L'ordonnancement naïf des nombres peut être contourné, en donnant à chacun un nombre identique de chiffres par exemple « 02 » sera avant « 10 » mais il ne s'agit que d'un contournement pratique qui ne change pas l'ordre ASCII lui-même.

## Références

* ↑ ASCIIbetical definition. [[w:PC Magazine|]]. Accessed 2008-04-14.