Chaîne de caractères

Chaîne de caractères

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

Dans les langages de programmation

La plupart des langages de programmation offrent une classe ou un type dédié à la représentation et à la manipulation des chaînes de caractères.

Langage Type de donnée Description
Python str, unicode A été modifié avec Python 3.0.
Java java.lang.String Depuis leur origine, les chaînes Java sont des chaînes Unicode.
C char* et char[] Le langage C n'a jamais connu de véritable type chaîne. Les chaînes de caractères sont couramment simulées par un pointeur sur une séquence de caractères mono-octets se terminant par un octet nul. Des bibliothèques existent pour gérer les chaînes, notamment pour pallier les limites des chaînes mono-octets.
C++ char* et char[], basic_string<> (string ou wstring) Les templates du C++ définissent la classe std::string (chaînes à base de caractères mono-octets). Néanmoins, il est souvent nécessaire de manipuler les « chaînes de style C » pour pouvoir utiliser la bibliothèque standard du C++.
Pascal String Le type de donnée chaîne existe depuis longtemps en Pascal/Delphi. Toutefois, depuis l'apparition de Delphi, plusieurs types de chaines de caractères ont été ajoutés : AnsiString, UnicodeString et WideString.

Représentation numérique

Différentes techniques existent pour représenter des chaînes à l'aide d'octets. Elles nécessitent généralement de pouvoir représenter chaque caractère (encodage), mais aussi de marquer la fin de la chaîne.

La fin de la chaîne peut être connue à l'aide d'un caractère de fin de chaîne (en général 0, mais $ a également été utilisé sous MS-DOS[1]), ou en stockant simultanément le nombre de caractères ou le nombre d'octets de la chaîne.

Chaque caractère est représenté par un nombre d'octets qui dépend du codage de caractères. En fonction de l'encodage utilisé, des limites pourront exister sur l'ensemble des caractères disponibles, les algorithmes de parcours de chaînes, l'interopérabilité et/ou des performances. En particulier, les codages à base de caractères mono-octets tels que les ASCII étendus, peuvent être plus performants, mais limitant et/ou contraignants dans un contexte d'internationalisation et/ou d'interopérabilité. Les autres encodages, comme UTF-8, présentent d'autres caractéristiques.

Représentation en mémoire

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).

FRANK en mémoire, délimité par un caractère nul
F R A N K NUL k e f w
46 52 41 4E 4B 00 6B 65 66 77
FRANK en mémoire stocké avec la longueur
length F R A N K k f f w
05 46 52 41 4E 4B 6B 66 66 77

Sucre syntaxique

La représentation d'une chaîne de caractères varie d'un système à un autre.

Pour représenter une chaîne de caractères dans un flux de caractères (comme un fichier texte, en particulier dans un code source), il est généralement nécessaire de marquer le début et la fin de la chaîne, et éventuellement d'utiliser des séquences d'échappement.

Généralement, pour représenter une chaîne de caractères, on l'entoure par une paire de caractères spéciaux, souvent des guillemets doubles. On notera par exemple "Wikipédia" pour désigner la chaîne composée des neuf caractères W, i, k, i, p, é, d, i et a.

Exemples :

  • "Wikipedia"
  • 'Cette phrase est une chaîne de caractères en langage Pascal qui utilise les apostrophes.'
  • (Le langage Poanipule aussi des chaînes de caractères avec des parenthèses.)
  • "" (Chaîne vide, de longueur zéro)
  • ' ' (Chaîne contenant un seul caractère : un espace)

Pour pouvoir utiliser ces caractères spéciaux, il existe des conventions. Avec le langage Pascal, on double le guillemet simple pour pouvoir l'introduire dans la chaîne de caractères :

  • 'Il s''agit d''un simple guillemet dans la chaîne de caractères.'

D'autres conventions utilisent un caractère d'échappement ; la barre oblique inversée est le caractère le plus utilisé. Pour les langages Java, C, C++ (et d'autres), on note \" pour introduire un guillemet double dans une chaîne de caractères :

  • "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"

Algorithmes

De nombreux 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 :

Le programmeur n'a généralement plus à s'en préoccuper désormais (même s'il doit en connaître le principe), ces algorithmes étant directement inclus dans les primitives du langage.

Voir aussi

Sur les autres projets Wikimedia :

Notes et références


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Chaîne de caractères de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • Chaine De Caractères — Chaîne de caractères 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 1… …   Wikipédia en Français

  • Chaine de caracteres — Chaîne de caractères 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 1… …   Wikipédia en Français

  • Chaine de caractères — Chaîne de caractères 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 1… …   Wikipédia en Français

  • Chaîne De Caractères — 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 1 Dans …   Wikipédia en Français

  • chaîne de caractères — ● loc. f. ►TYPE Ensemble ordonné d éléments représentant des caractères. Souvent ces éléments sont de simples octets, comme dans une chaîne ASCII, mais de plus en plus souvent on utilise Unicode qui code chaque caractère sur deux octets. Une… …   Dictionnaire d'informatique francophone

  • Algorithme de recherche de chaîne de caractères de Boyer-Moore — Algorithme de Boyer Moore L algorithme de Boyer Moore est un algorithme de recherche de sous chaîne particulièrement efficace. Il a été développé par Bob Boyer et J. Strother Moore en 1977. Sommaire 1 Présentation 2 Fonctionnement de l algorithme …   Wikipédia en Français

  • Chaine — Chaîne Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom.  Pour l’article homophone, voir Chêne (homonymie) …   Wikipédia en Français

  • chaîne — ● 1. n. f. ►TYPE Dans l expression chaîne de caractères, ensemble ordonné de caractères, un mot ou une phrase, par exemple ( string en anglais). Les chaînes peuvent être délimités par un zéro tout à la fin (chaînes AZT ou ASCIIZ), ou par le… …   Dictionnaire d'informatique francophone

  • Chaîne — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom.  Pour l’article homophone, voir Chêne (homonymie). Sur les autres projets Wikimedia : «  …   Wikipédia en Français

  • Chaîne de lettres —  Ne doit pas être confondu avec Chaîne de caractères. Une chaîne de lettres est un courrier (postal ou électronique) demandant au destinataire d en envoyer une copie à chacun de ses proches ou s il ne l envoie pas, un « malheur »… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”