Chaîne de caractères
Un article de Wikipédia, l'encyclopédie libre.
En informatique, une chaîne de caractères est une suite ordonnée de caractères. La chaîne de caractères est un type de donnée dans de nombreux langages informatiques. En anglais, on emploie le terme (en) string.
Sommaire |
[modifier] Codage
Une chaîne peut être codée en avec divers codages de caractère, comme ASCII, UTF-8, etc.
Dans une mémoire informatique, l'adresse mémoire du premier caractère est connu. Pour délimiter la fin de la chaîne, soit elle est terminée par un caractère de fin de chaîne (zéro binaire en langage C, et on parle alors d'ASCIIZ pour indiquer « terminé par un zéro »), soit le nombre de caractères est stocké en parallèle (BASIC, Pascal, PL/I). Dans certains langages orientés objet, le codage interne de la chaîne n'a pas besoin d'être connu (encapsulation).
| F | R | A | N | K | NUL | k | e | f | w |
| 46 | 52 | 41 | 4E | 4B | 00 | 6B | 65 | 66 | 77 |
| length | F | R | A | N | K | k | f | f | w |
| 05 | 46 | 52 | 41 | 4E | 4B | 6B | 66 | 66 | 77 |
[modifier] Sucre syntaxique
La représentation d'une chaîne de caractères dépend d'un système à un autre. Généralement, pour représenter une chaîne de caractères on l'entoure par une paire de caractères spéciaux. Les guillemets doubles sont souvent utilisés. On notera par exemple "Wikipedia" pour désigner la chaîne de caractères composée par neuf caractères, qui sont respectivement: W, i, k, i, p, e, d, i et a. Exemples :
"Wikipedia"'Cette phrase est une chaîne de caractères, en langage Pascal.'(Le langage PostScript manipule aussi des chaînes de caractères.)
Pour éviter des confusions d'usage des caractères spéciaux dans une chaîne de caractères, on imagine des conventions, toujours valables selon les systèmes. Avec le langage Pascal, par exemple, on double le guillemet simple pour l'introduire dans la liste des caractères d'une chaîne de caractères. C'est le cas dans l'exemple suivant :
'Il s''agit d''un simple guillemet dans la chaîne de caractères.'
D'autres conventions consistent à utiliser un caractère d'échappement pour introduire des caracxtères spéciaux. L'antislash est le plus utilisé ici. Pour les langages Java, C, C++ et d'autres, on note \" pour introduire un guillemet double dans une chaîne de caractères. Par exemple :
"Première solution pour contenir le délimiteur \", un caractère d'échappement""Seconde solution pour contenir le délimiteur\\, le doublage du délimiteur"
[modifier] Algorithmes
Plusieurs algorithmes font partie de l'état de l'art pour traiter les chaînes, chacun pouvant connaître différentes formes. Quelques exemples de catégories de tels algorithmes :
- algorithmes de recherche de sous-chaîne(s) comme celui de Boyer-Moore
- algorithmes de recherche d'expressions rationnelles
- algorithmes de tri en Unicode ; classement alphabétique ; classement alphabétique complexe
- analyse syntaxique d'une chaîne
- algorithmes de conversion (Unicode, capitalisation, transcodages...)
Le programmeur n'a, aujourd'hui, généralement plus à s'en préoccuper (même s'il doit en connaître le principe), ces algorithmes étant directement utilisés par les primitives du langage.

