Formatage de chaînes personnalisé#
Introduction#
Le formatage de chaînes de caractères en C++ pour VEX IQ (2e génération) utilise printfprintf` pour créer des chaînes contenant des variables, des expressions ou des valeurs. Cette méthode utilise des spécificateurs de format tels que %d, %f, %s, etc., pour insérer des valeurs dans les chaînes.
Mise en forme des nombres — Insertion de valeurs et d’expressions dans une chaîne de caractères.
%d— Formate les entiers.%.xf— Définit le nombre de décimales à afficher pour les nombres flottants.%x— Formate un nombre en hexadécimal.%c— Formate les caractères individuels.%s— Formate les chaînes de caractères de style C.
Combinaison de chaînes de caractères — Combiner texte et valeurs.
strcat— Concaténer manuellement des chaînes de style C.
Recherche de sous-chaînes — Test de présence ou de position du texte.
strstr— Trouve une sous-chaîne dans une chaîne.
Séquences d’échappement — Formatez la sortie avec des caractères spéciaux.
\n— Ajoute un saut de ligne (nouvelle ligne).
Mise en forme des nombres#
Le C++ utilise des spécificateurs de format pour contrôler la façon dont les nombres et autres types de données apparaissent dans les chaînes de caractères.
Integers#
Formate les valeurs entières en utilisant le spécificateur de format %d.
%d
Ce spécificateur de format ne comporte pas de paramètres.
Return ValuesFormate la valeur entière sous forme d’entier dans la chaîne.
Examplesint count = 42;
// Display a single variable
Brain.Screen.print("Count: %d", count);
int x = 1;
int y = 5;
// Display multiple variables
Brain.Screen.print("Position: (%d, %d)", x, y);
// Display a calculation
Brain.Screen.print("Sum: %d", 5 + 3);
// Display the robot's battery capacity
Brain.Screen.print("Battery: %d%%", Brain.Battery.capacity());
Fixed Decimal Places#
Contrôle le nombre de décimales affichées pour un nombre à virgule flottante à l’aide du spécificateur de format %.xf.
%.xf
Paramètre |
Taper |
Description |
|---|---|---|
|
|
Le nombre de décimales à afficher. |
Formate la valeur à virgule flottante avec le nombre de décimales spécifié.
Examples// Display pi with 2 decimal places
double pi = 3.1415926535;
Brain.Screen.print("Pi: %.2f", pi);
Hexadecimal#
Convertit les nombres en représentation hexadécimale en utilisant %x (minuscules) ou %X (majuscules).
1 — Formate les nombres en hexadécimal minuscule.
%x
Parameters2 — Formate les nombres en hexadécimal majuscules.
%X
Ce spécificateur de format ne comporte pas de paramètres.
Return ValuesFormate la valeur entière sous forme de chaîne hexadécimale.
Examples// Convert 255 to hexadecimal
int number = 255;
// Display hexadecimals
Brain.Screen.print("Hex: %x", number);
Brain.Screen.print("Hex: 0x%X", number);
Characters#
Formate les caractères individuels en utilisant le spécificateur de format %c.
%c
Ce spécificateur de format ne comporte pas de paramètres.
Return ValuesFormate la valeur du caractère en un seul caractère.
Exampleschar letter = 'A';
// Display a single character variable
Brain.Screen.print("Letter: %c", letter);
Strings#
Formate les chaînes de caractères de style C (tableaux de caractères) en utilisant le spécificateur de format %s.
%s
Ce spécificateur de format ne comporte pas de paramètres.
Return ValuesFormate la valeur de la chaîne sous forme de texte.
Exampleschar message[] = "IQ";
// Display a string variable
Brain.Screen.print("Hello, %s", message);
Combinaison de chaînes#
Combine deux chaînes de caractères en utilisant la fonction strcat strcat.
char* strcat(char* string1, const char* string2);
Paramètre |
Taper |
Description |
|---|---|---|
|
|
Chaîne de caractères à compléter. Doit comporter suffisamment d’espace pour le nouveau texte. |
|
|
La chaîne de caractères que vous souhaitez ajouter. |
Renvoie un pointeur vers la chaîne résultante (string1).
Assurez-vous que la chaîne dispose d’un espace suffisant pour les caractères ajoutés. L’ajout de caractères à une chaîne trop courte peut écraser d’autres variables et entraîner un comportement inattendu.
// Make sure the variable has enough space
// for all characters (set it to 20)
char message[20] = "Hello,";
strcat(message, " IQ");
// Display the combined strings
Brain.Screen.print("%s", message);
Vérification des sous-chaînes#
Renvoie un pointeur vers la position de la première occurrence d’une chaîne de style C dans une autre chaîne en utilisant la fonction strstr.
char* strstr(const char* str, const char* substring);
Paramètre |
Taper |
Description |
|---|---|---|
|
|
Un pointeur vers la chaîne de caractères recherchée. |
|
|
La chaîne de caractères à rechercher. |
Renvoie un pointeur vers la première occurrence de la sous-chaîne, ou NULL si la chaîne est introuvable.
char message[] = "Hey everyone!";
// Display if "Hey" is in the variable
if (strstr(message, "Hey") != NULL) {
Brain.Screen.print("Hello!");
}
Séquences d’évasion#
Les séquences d’échappement sont des caractères spéciaux utilisés dans les chaînes de caractères pour formater le texte affiché.
New Line#
Déplace le texte à une nouvelle ligne lors de l’impression en utilisant la séquence d’échappement \n.
\n
Cette séquence d’échappement ne comporte pas de paramètres.
Return ValuesInsère un caractère de nouvelle ligne dans la sortie.
NotesCela fonctionne uniquement sur la console. Le texte ne sera envoyé à la console qu’au début d’une nouvelle ligne.
// Display text on two lines
printf("First line\nSecond line\n");