From 7d313e064cffc423623bb6f93894e89a46cd69bb Mon Sep 17 00:00:00 2001 From: medina5 Date: Wed, 26 Nov 2025 06:59:35 +0100 Subject: [PATCH] string --- anatomie.md | 7 +++++++ string.md | 20 +++++++++++++------- td6.correction.md | 8 ++++---- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/anatomie.md b/anatomie.md index c6dfcad..a83d6e1 100644 --- a/anatomie.md +++ b/anatomie.md @@ -88,6 +88,13 @@ La bibliothèque standard ***stdlib.h*** (standard library) fournit des fonction La bibliothèque ***string.h*** fournit des fonctions pour manipuler les chaînes de caractères et les blocs mémoire. +- `strlen()` : Calculer la longueur de la chaîne (sans compter le caractère nul). +- `strcpy()` : Copier une chaîne dans une autre (=). +- `strcmp()` : Comparer deux chaînes (==). +- `strcat()` : Concaténer deux chaînes (+). + +[VOIR](string) en détail le fonctionnement des chaines de caractères. + ### ctype La bibliothèque ***ctype.h*** fournit des fonctions pour tester et manipuler des caractères. diff --git a/string.md b/string.md index 05873a1..43d6828 100644 --- a/string.md +++ b/string.md @@ -7,11 +7,18 @@ Les tableaux étant aussi des pointeurs, les chaînes de caractères sont des po ### Tableau de caractères -Une chaîne de caractères est déclarée comme un tableau de type char, où chaque élément représente un caractère, et la dernière position du tableau contient le caractère nul (\0). +Une chaîne de caractères est déclarée comme un tableau de type char, où chaque élément représente un caractère, et la dernière position de la chaine contient le caractère nul (\0). ```c char nom[10] = "Alice"; // Déclare un tableau de 10 caractères ``` + +Position|0|1|2|3|4|5|6|7|8|9| +---|---|---|---|---|---|---|---|---|---|---| +caractère |A|l|i|c|e +code ascii|65|108|105|99|101|0|xx|xx|xx|xx + + #### Accès aux caractères Les caractères individuels d'une chaîne peuvent être accédés via leur index, comme pour tout tableau : @@ -24,10 +31,10 @@ printf("%c", nom[0]); // Affiche 'A' La bibliothèque standard de C () fournit plusieurs fonctions pour manipuler les chaînes de caractères, telles que : -- strlen() : Calculer la longueur de la chaîne (sans compter le caractère nul). -- strcpy() : Copier une chaîne dans une autre (=). -- strcmp() : Comparer deux chaînes (==). -- strcat() : Concaténer deux chaînes (+). +- `strlen()` : Calculer la longueur de la chaîne (sans compter le caractère nul). +- `strcpy()` : Copier une chaîne dans une autre (=). +- `strcmp()` : Comparer deux chaînes (==). +- `strcat()` : Concaténer deux chaînes (+). > [!WARNING] > NE JAMAIS faire d'opération sur les chaines de caractère = + ==. Il faut utiliser les fonctions prévues pour la manipulation des chaînes. @@ -83,11 +90,10 @@ int main (int argc , char *argv[]) A la fin de la saisie, le caractère '\0' est ajouté automatiquement. - +> [!WARNING] > ATTENTION : scanf ne permet pas la saisie d'une chaîne comportant des espaces. ⇒ Les caractères saisis à partir de l'espace ne sont pas pris en compte mais restent rangés dans le tampon d'entrée. -{class=warning} ### Le tampon d'entrée ? diff --git a/td6.correction.md b/td6.correction.md index 765132b..04cbf6a 100644 --- a/td6.correction.md +++ b/td6.correction.md @@ -12,10 +12,10 @@ typedef struct { ```c typedef struct { - int compte_id; // lien avec le compte - char type; // 'D' ou 'R' - double montant; - char date[20]; // horodatage ou saisie manuelle + int compte_id; // lien avec le compte + char type; // 'D' ou 'R' + double montant; + char date[20]; // horodatage ou saisie manuelle } Operation; ```