Le langage Arduino :Les chaînes de caractères « string »

.

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 .
  • 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

.

separateur-redohm-001

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 : 

 

Retour au sommaire

.

separateur-redohm-001charAt() –

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.

Retour au sommaire

.

separateur-redohm-001

– 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

.

separateur-redohm-001

– 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

Assembler plusieurs chaines de caractéres String - RedOhm -

Assembler plusieurs chaines de caractéres String – RedOhm –

 

 

 

 

 

 

 

.

On concatene les chaines de caracteres entre elles

.

Retour au sommaire

.

separateur-redohm-001

– 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

.

separateur-redohm-001

– 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 à

to (facultatif): l’index pour terminer la sous-chaîne avant

.

Retour au sommaire

.

separateur-redohm-001

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 :

  1. 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.

  2. 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.

  3. 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