Formatage de chaînes personnalisé#

Introduction#

String formatting in C++ for VEX EXP uses printf-style format specifiers to create strings that include variables, expressions, or values. This method uses format specifiers like %d, %f, %s, etc., to insert values into strings.

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.

Format specifiers
%d

Parameters

Ce spécificateur de format ne comporte pas de paramètres.

Return Values

Formate la valeur entière sous forme d’entier dans la chaîne.

Examples
int 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.

Format specifiers
%.xf

Parameters

Paramètre

Taper

Description

x

int

Le nombre de décimales à afficher.

Return Values

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

Format specifiers

1 — Formate les nombres en hexadécimal minuscule.

%x

2 — Formate les nombres en hexadécimal majuscules.

%X

Parameters

Ce spécificateur de format ne comporte pas de paramètres.

Return Values

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

Format specifiers
%c

Parameters

Ce spécificateur de format ne comporte pas de paramètres.

Return Values

Formate la valeur du caractère en un seul caractère.

Examples
char 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.

Format specifiers
%s

Parameters

Ce spécificateur de format ne comporte pas de paramètres.

Return Values

Formate la valeur de la chaîne sous forme de texte.

Examples
char message[] = "EXP";

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

Available Functions
char* strcat(char* string1, const char* string2);

Parameters

Paramètre

Taper

Description

string1

char*

Chaîne de caractères à compléter. Doit comporter suffisamment d’espace pour le nouveau texte.

string2

const char*

La chaîne de caractères que vous souhaitez ajouter.

Return Values

Renvoie un pointeur vers la chaîne résultante (string1).

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

Examples
// Make sure the variable has enough space
// for all characters (set it to 20)
char message[20] = "Hello,";
strcat(message, " EXP");

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

Available Functions
char* strstr(const char* str, const char* substring);

Parameters

Paramètre

Taper

Description

str

const char*

Un pointeur vers la chaîne de caractères recherchée.

substring

const char*

La chaîne de caractères à rechercher.

Return Values

Renvoie un pointeur vers la première occurrence de la sous-chaîne, ou NULL si la chaîne est introuvable.

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

Format specifiers
\n

Parameters

Cette séquence d’échappement ne comporte pas de paramètres.

Return Values

Insère un caractère de nouvelle ligne dans la sortie.

Notes
  • Cela fonctionne uniquement sur la console. Le texte ne sera envoyé à la console qu’au début d’une nouvelle ligne.

Examples
// Display text on two lines
printf("First line\nSecond line\n");