Les chaînes de caractères (appelées en anglais strings), sont des objets importants en programmation, intervenant dans les entrées-sorties et plus généralement dans la manipulation de fichiers textuels.
Une chaîne littérale est une suite de caractères entourée par des apostrophes doubles " (en anglais double quotes), par exemple "Knuth".
Une chaîne de caractères est représentée  en mémoire comme un tableau de
char   dont  le dernier  élément   est le  caractère  nul  noté
\0.    On peut utiliser  une  chaîne  littérale pour définir  une
variable de type tableau de caractères :
char k[] = "Knuth";
ce qui a pour effet d'allouer un tableau de 6 caractères (un de plus que la longueur de la chaîne), et d'initialiser chacun de ses éléments par :
k[0] = 'K'; k[1] = 'n'; k[1] = 'u'; k[1] = 't'; k[4] = 'h'; k[5] = '\0'
La valeur des caractères peut être ultérieurement modifiée, par exemple par
k[4] = 't';
mais le nom k n'étant pas une variable, ne peut être l'objet d'une affectation : k = "Donald" est interdit.
Les chaînes ont déjà été employées pour réaliser des lectures et des écritures. Les fonctions printf et scanf prennent une chaîne en premier argument.
Une chaîne  de caractères  (sans  espaces) peut  être  lue sur  l'entrée
standard  avec la  fonction   scanf, et  écrite  sur la  sortie
standard avec printf en utilisant la conversion %s :
  char s[4];        /* pour lire au plus 3 caractères */
  scanf("%s", s); 
  printf("%s", s);
Un \0 est ajouté à la fin des caractères lus par scanf.