--- title: Chaînes de caractères date: 2019-10-16 --- # Rappel: le type `char`{.C} - Le type `char`{.C} est utilisé pour représenter un caractère. - C'est un entier 8 bits signé. - En particulier: - Écrire ```C char c = 'A'; ``` - Est équivalent à: ```C char c = 65; ``` - Les fonctions d'affichage interprètent le nombre comme sa valeur ASCII. # Chaînes de caractères (strings) - Chaîne de caractère `==` tableau de caractères **terminé par la valeur** `'\0'`{.C} ou `0`{.C}. ## Exemple ```C char *str = "HELLO !"; ``` Est représenté par | `H` | `E` | `L` | `L` | `O` | | `!` | `\0`| |------|------|------|------|------|------|------|-----| | `72` | `69` | `76` | `76` | `79` | `32` | `33` | `0` | # Syntaxe ```C char name[5]; 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'}; char name[5] = "Paul"; char name[] = "Paul"; char name[100] = "Paul is not 100 characters long."; ``` # Fonctions - Il existe une grande quantités de fonction pour la manipulation de chaînes de caractères dans `string.h`. - Fonctions principales: ```C size_t strlen(char *str); char *strcpy(char *dest, const char *src); char *strncpy(char *dest, const char *src, size_t len); int strncmp(char *str1, char *str2, size_t len); int strcmp(char *str1, char *str2); ``` - Pour avoir la liste complète: `man string`.