Mise à jour le 10/02/2023 : Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c’est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. Voici donc une chaîne de caractère ou string => « bonjour »
.
Sommaire :
- Ensemble des fonctions pour la manipulation des chaines de caractères.
- String(). Les chaînes de texte peuvent être représentées de deux manières. vous pouvez utiliser le type de données String, qui fait partie du noyau à partir de la version 0019, ou vous pouvez créer une chaîne à partir d’un tableau de type char et le mettre à zéro
- Le tuto et le code sur les chaines de caractéres
- charAt() . Accéde à un caractère particulier de la chaîne.
- compareTo().Compare deux chaînes en vérifiant si l’une se situe avant ou après l’autre
- concat(). Concatène deux objets String en un seul nouvel objet String.
- endsWith() .Teste si une chaîne se termine ou non par les caractères d’une autre chaîne.
- equals() . Compare deux chaînes pour l’égalité. La comparaison est sensible à la casse, ce qui signifie que la chaîne « hello » n’est pas égale à la chaîne « HELLO ».
- equalsIgnoreCase()
- getBytes().Copie les caractères de la chaîne dans le tampon fourni.
- indexOf() . Localise un caractère ou une chaîne dans une autre chaîne. Par défaut, les recherches sont effectuées depuis le début de la chaîne, mais peuvent également commencer à partir d’un index donné, ce qui permet de localiser toutes les occurrences du caractère ou de la chaîne.
- lastIndexOf().Localise un caractère ou une chaîne dans une autre chaîne. Par défaut, les recherches sont effectuées à partir de la fin de la chaîne, mais peuvent également fonctionner à partir d’un index donné, ce qui permet de localiser toutes les occurrences du caractère ou de la chaîne.
- length().Renvoie la longueur de la chaîne, en caractères. (Notez que cela n’inclut pas un caractère nul final.)
- remove().Modifiez sur place une chaîne supprimant les caractères de l’index fourni jusqu’à la fin de la chaîne ou de l’index fourni pour indexer le nombre.
- replace().La fonction String replace () vous permet de remplacer toutes les occurrences d’un caractère donné par un autre caractère. Vous pouvez également utiliser replace pour remplacer les sous-chaînes d’une chaîne par une autre sous-chaîne.
- reserve().La fonction String reserve () vous permet d’allouer un tampon en mémoire pour manipuler des chaînes.
- setCharAt().Définit un caractère de la chaîne. N’a aucun effet sur les index en dehors de la longueur existante de la chaîne.
- startsWith()
- substring. Extrait une sous-chaîne d’un objet String .
- String(). Les chaînes de texte peuvent être représentées de deux manières. vous pouvez utiliser le type de données String, qui fait partie du noyau à partir de la version 0019, ou vous pouvez créer une chaîne à partir d’un tableau de type char et le mettre à zéro
- Opérateur d’ajout de chaîne. Vous pouvez ajouter des chaînes de différentes manières. Cela s’appelle la concaténation .
- Exemple d’utilisation sous forme de programme
- Retour au menu -> le langage pour Arduino.
.
Retour au sommaire
Ensemble des fonctions pour la manipulation des chaines de caractères |
– String() –
Les chaînes de texte peuvent être représentées de deux manières. vous pouvez utiliser le type de données String, qui fait partie du noyau à partir de la version 0019, ou vous pouvez créer une chaîne à partir d’un tableau de type char et le mettre à zéro.
Syntaxe :
Tous les éléments suivants sont des déclarations valides pour des 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éclarer des chaînes
- Déclarer un tableau de caractères sans l’initialiser comme dans Str1
- Déclarez 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 l’adapter à la constante de chaîne et à un caractère nul final, Str4
- Initialiser le tableau avec une constante de taille et une chaîne explicites, Str5
- Initialiser le tableau, en laissant un espace supplémentaire pour une chaîne plus grande, Str6
Terminaison de la chaine nulle
Généralement, les chaînes se terminent par un caractère nul (code ASCII 0). Cela permet aux fonctions (comme Serial.print()) de dire où se trouve la fin d’une chaîne. Sinon, ils continueraient à lire les octets de la mémoire suivants qui ne font pas réellement partie de la chaîne.
Cela signifie que votre chaîne doit avoir suffisamment d’espace pour un caractère de plus que le texte que vous souhaitez qu’elle contienne. C’est pourquoi Str2 et Str5 doivent comporter huit caractères, même si « arduino » n’en contient que sept – la dernière position est automatiquement remplie par un caractère nul. Str4 sera automatiquement dimensionné à huit caractères, un pour l’extra null. Dans Str3, nous avons explicitement inclus le caractère nul (écrit ‘\ 0’) nous-mêmes.
.
Le code du tuto :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
// // //============================================= // // Les chaines de caracteres // partie 1 // // etude de : // string / char / // ajout de chaine ou concaténer // calcul le nombre de caractéres qui se trouvent dans la chaine // // Le 22-03-2022 // Herve Mazelin pour RedOhm sur l'ide 1.8.57.0 // //============================================= // -- declaration des variables pour la communication // entre le pc et votre Arduino // variable recevant les données transmises par le moniteur IDE // char -> Déclare une variable de un octet de mémoire (8 bits) qui contient // une valeur correspondant à un caractère char reception_des_donnees ; // variable recevant une chaine de caracteres String chaine_caractere ; // -- declaration des variables // int passage_menu = 0 ; int passage_buffer; // Un programme Arduino doit impérativement contenir cette fonction // Elle ne sera exécutee une seule fois au démarrage du microcontroleur // Elle sert à configurer globalement les entrées sorties void setup() { // initialisation de la connexion série // IMPORTANT : le terminal côté PC doit être réglé sur la même valeur. Serial.begin(9600); // on attent que le port de communication soit pret while (!Serial) { ; } } // Le programme principal s’exécute par une boucle infinie appelée Loop () void loop() { // Affichage du menu if (passage_menu == 0 ) { Serial.println ("------------------------------------------------------------------------"); Serial.println (" Les chaines de caracteres "); Serial.println (" "); Serial.println (" Inscrivez dans le bandeau de l'IDE Arduino une chaîne de caractères "); Serial.println ("------------------------------------------------------------------------"); passage_menu = 1 ; } // -- Lecture du port serie while (Serial.available() > 0) { //lecture du buffer reception_des_donnees = Serial.read(); // Il existe deux méthodes pour assembler une chaîne de caractères // dans ce cas bien précis // 1 -> chaine_caractere += reception_des_donnees ; // 2 -> chaine_caractere.concat(reception_des_donnees); chaine_caractere.concat(reception_des_donnees) ; delay(15); // comptage du nombre de passage passage_buffer = passage_buffer + 1; } if ( chaine_caractere != "") { Serial.print ("Nombre de passage pour vider le buffer => "); Serial.println (passage_buffer); Serial.print ( chaine_caractere ); int nombre_de_caractere ( chaine_caractere.length()); Serial.print (" "); Serial.print ("Nombre de caractére "); Serial.println ( nombre_de_caractere); Serial.println(""); } chaine_caractere = ""; delay (10); passage_buffer = 0; } |
Retour au sommaire
– charAt() –
La fonction charAt() en Arduino est une méthode de la classe String qui permet de récupérer le caractère à une position spécifique dans une chaîne de caractères. La méthode accepte un seul argument, qui est l’index du caractère à récupérer. L’index commence à 0 pour le premier caractère de la chaîne.
Voici un exemple d’utilisation de la fonction charAt() :
String texte = « Bonjour »;
// Récupère le premier caractère (B)
char premier_caractere = texte.charAt(0);
// Récupère le dernier caractère (r)
char dernier_caractere = texte.charAt(texte.length() – 1);
Notez que si vous tentez de récupérer un caractère à un index qui dépasse la longueur de la chaîne de caractères, la fonction renvoie un caractère nul (\0). Il est donc important de vérifier que l’index est compris dans les limites de la chaîne avant d’utiliser la fonction.
Syntaxe : myString.charAt(n)
Paramètres :
myString: une variable de type String.
n : une variable. Autorisé types de données: unsigned int.
– compareTo() –
Compare deux chaînes en vérifiant si l’une se situe avant ou après l’autre, ou si elles sont égales. Les chaînes sont comparées caractère par caractère en utilisant les valeurs ASCII des caractères. Cela signifie, par exemple, que « a » vient avant « b » mais après « A ». Les chiffres viennent avant les lettres.
Syntaxe :
myString.compareTo(myString2)
Paramètres :
myString : une variable de type String.
myString2: une autre variable de type String.
.
Retour au sommaire– concat() –
Concatène deux objets String en un seul nouvel objet String.
La concaténation de deux chaînes de caractères consiste à les mettre bout à bout. Le terme peut désigner:
- l’opération de concaténer ces chaînes,
- le résultat de cette opération.
Exemple :
La concaténation des chaînes « bonjour » et » RedOhm » donne « bonjour RedOhm ».
Syntaxe :
myString.concat(paramètre)
Paramètres :
myString : une variable de type chaine de caractère
paramètre : Types de données autorisés , String, string, char, byte, int, unsigned int, long, unsigned long, float, double,
.
Il y a plusieurs possibilités d’assembler des chaines entre elles
En additionnant les chaines de caracteres entre elles
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
// // RedOhm String chaine_1 = "moteur"; String chaine_2 = "servo"; String chaine_3= ""; void setup() { Serial.begin (9600); while(!Serial); // --- Il y a plusieurs possibilités d'assembler des chaines entre elles --- Serial.println("--- Il y a plusieurs possibilités d'assembler des chaines entre elles ---"); Serial.println (""); // On peut assembler en additionnant les chaines de caracteres entre elles chaine_3= chaine_2+chaine_1; Serial.println( "chaine_3 = chaine_2 + chaine_1"); Serial.println ("soit "); Serial.print( chaine_3); Serial.print(" = "); Serial.print(chaine_2); Serial.print(" + "); Serial.print(chaine_1); } void loop() { } |
.
On concatene les chaines de caracteres entre elles
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// // RedOhm String chaine_1 = "servo"; String chaine_2 = "moteur"; void setup() { Serial.begin (9600); while(!Serial); // --- Il y a plusieurs possibilités d'assembler des chaines entre elles --- // Avec la fonction concat() // On concatene chaine_1 avec chaine_2 resultat dans chaine_1 chaine_1.concat(chaine_2); // Affichage du resultat obtenu avec la commande concat Serial.print(chaine_1); } void loop() { } |
.
Retour au sommaire– indexOf() –
Localise un caractère ou une chaîne dans une autre chaîne. Par défaut, les recherches sont effectuées depuis le début de la chaîne, mais peuvent également commencer à partir d’un index donné, ce qui permet de localiser toutes les occurrences du caractère ou de la chaîne.
Syntaxe :
myString.indexOf(val)
myString.indexOf(val, from)
Parameters
myString : une variable de type String.
val : la valeur à rechercher. Types de données autorisés: char, String.
from : l’index à partir duquel lancer la recherche.
.
Retour au sommaire– substring() –
Obtenez une sous-chaîne d’une chaîne. L’index de départ est inclusif (le caractère correspondant est inclus dans la sous-chaîne), mais l’index final facultatif est exclusif (le caractère correspondant n’est pas inclus dans la sous-chaîne). Si l’index de fin est omis, la sous-chaîne continue jusqu’à la fin de la chaîne.
Syntaxe :
myString.substring(from)
myString.substring(from, to)
Paramètres :
myString: une variable de type String
from: l’index pour démarrer la sous-chaîne à
Exemple 1 : Utilisation de la fonction substring et length |
Le tuto :
Pour faire apparaître une chaîne de caractères en affichant les lettres les unes derrière les autres, vous devrez suivre les étapes suivantes :
-
Compter le nombre de caractères dans la chaîne : Cette étape est cruciale car elle vous permettra de déterminer le nombre de fois que vous devrez extraire un caractère de la chaîne. Vous pouvez utiliser la fonction « length() » pour compter le nombre de caractères.
-
Extraire un caractère à la fois : En utilisant la fonction « substring() », vous pouvez extraire un caractère à la fois à partir de la chaîne. La fonction « substring() » vous permet de spécifier les indices du début et de la fin du caractère que vous souhaitez extraire.
-
Faire apparaître les caractères un à un avec une temporisation : Après avoir extrait un caractère, vous pouvez le faire apparaître à l’écran en utilisant un algorithme de boucle qui affichera chaque caractère un à un avec une temporisation entre chaque. Cela vous permettra de créer un effet de défilement et de faire ressortir chaque caractère de manière distincte.
En utilisant ces trois étapes, vous pouvez faire apparaître une chaîne de caractères en affichant les lettres les unes derrière les autres. Il est important de comprendre les fonctions « substring() » et « length() » pour réussir cette tâche.
.
.
Retour au sommaire Telechargement