string
Description :
Les chaînes de texte peuvent être représentées de deux manières : vous pouvez utiliser le type de données String ou créer une chaîne à partir d’un tableau de type char et le terminer par un caractère nul. Cette page décrit cette dernière méthode. Pour plus de détails sur l’objet String, qui offre davantage de fonctionnalités au détriment de la mémoire, consultez la page consacrée à l’objet String.
Syntaxe :
Toutes les déclarations suivantes sont valides pour les chaînes.
char Str1[15]; char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'}; char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'}; char Str4[] = "arduino"; char Str5[8] = "arduino"; char Str6[15] = "arduino";
Possibilités de déclaration de chaînes
- Déclarer un tableau de caractères sans l’initialiser, comme dans Str1.
- Déclarer un tableau de caractères (avec un caractère supplémentaire) et le compilateur ajoutera le caractère nul requis, comme dans Str2.
- Ajouter explicitement le caractère nul, Str3.
- Initialiser avec une constante de chaîne entre guillemets ; le compilateur dimensionnera le tableau pour qu’il contienne la constante de chaîne et un caractère nul de fin, Str4.
- Initialiser le tableau avec une taille et une constante de chaîne explicites, Str5.
- Initialiser le tableau en laissant de l’espace pour une chaîne plus longue, Str6.
Résiliation nulle
Généralement, les chaînes de caractères se terminent par un caractère nul (code ASCII 0). Cela permet à des fonctions (comme Serial.print()) de déterminer la fin d’une chaîne. Sinon, elles continueraient à lire les octets suivants de la mémoire qui ne font pas réellement partie de la chaîne.
Cela signifie que votre chaîne doit contenir un caractère de plus que le texte souhaité. C’est pourquoi Str2 et Str5 doivent comporter huit caractères, même si « arduino » n’en comporte que sept ; la dernière position est automatiquement remplie par un caractère nul. Str4 sera automatiquement dimensionné à huit caractères, un pour le caractère nul supplémentaire. Dans Str3, nous avons explicitement inclus le caractère nul (noté \0).
Notez qu’il est possible d’avoir une chaîne sans caractère nul final (par exemple, si vous aviez spécifié la longueur de Str2 à sept au lieu de huit). Cela perturbera la plupart des fonctions utilisant des chaînes de caractères ; il est donc déconseillé de le faire intentionnellement. Cependant, si vous remarquez un comportement étrange (opération sur des caractères extérieurs à la chaîne), cela pourrait être la cause du problème.
Guillemets simples ou guillemets doubles ?
Les chaînes sont toujours définies entre guillemets doubles (« Abc ») et les caractères sont toujours définis entre guillemets simples (A).
Envelopper de longues chaînes
Vous pouvez envelopper de longues chaînes comme ceci :
char myString[] = "C est la première ligne" " c est la deuxième ligne" " etc.";
Tableaux de chaînes
Il est souvent pratique, lorsqu’on travaille avec de grandes quantités de texte, comme un projet avec un écran LCD, de créer un tableau de chaînes. Les chaînes étant elles-mêmes des tableaux, il s’agit en fait d’un exemple de tableau à deux dimensions.
Dans le code ci-dessous, l’astérisque après le type de données char « char* » indique qu’il s’agit d’un tableau de « pointers ». Tous les noms de tableaux sont en fait des pointeurs ; cette étape est donc nécessaire pour créer un tableau de tableaux. Les pointeurs sont l’un des aspects les plus ésotériques du C++ pour les débutants, mais il n’est pas nécessaire de les comprendre en détail pour les utiliser efficacement ici.
Exemple de code :
char *myStrings[] = {"Ceci est la chaîne", "Ceci est la chaîne 2", "Ceci est la chaîne 3", "Ceci est la chaîne 4", "Ceci est la chaîne 5", "Ceci est la chaîne 6" }; void setup() { Serial.begin(9600); } void loop() { for (int i = 0; i < 6; i++) { Serial.println(myStrings[i]); delay(500); } }
Source : https://docs.arduino.cc/language-reference/en/variables/data-types/string/