diff --git a/slides/strings.md b/slides/strings.md new file mode 100644 index 0000000000000000000000000000000000000000..53dd5569fbafb4c85b61a479a4fa5e401122c77e --- /dev/null +++ b/slides/strings.md @@ -0,0 +1,55 @@ +--- +title: "Chaînes de caractères" +date: "2022-11-01" +--- + +# Rappel: la chaîne de caractères + +## Existe-t-il un type `string`{.C} en `C`{.C}? + +. . . + +* Non. + +. . . + +## Qu'est-ce qu'une chaîne de caractères en C? + +. . . + +* Un tableau de `char`{.C} (entier signé 8 bits, le code ASCII de chaque caractère). + +. . . + +## Comment détecte-t-on la fin d'une chaîne de caractères? + +. . . + +* La chaîne est terminée lorsqu'on rencontre le caractère `\0`{.C} ou l'ASCII `0`{.C}. + +# Exemple + +```C +char *str = "HELLO !"; // statique +``` + +Est représenté par + +| `H` | `E` | `L` | `L` | `O` | | `!` | `\0`| +|------|------|------|------|------|------|------|-----| +| `72` | `69` | `76` | `76` | `79` | `32` | `33` | `0` | + +# Syntaxes alternatives + +```C +char name[10]; +name[0] = 'P'; // = 70; +name[1] = 'a'; // = 97; +name[2] = 'u'; // = 117; +name[3] = 'l'; // = 108; +name[4] = '\0'; // = 0; +char name[] = {'P', 'a', 'u', 'l', '\0'}; +``` + + +