Vlastní formátování řetězců#

Zavedení#

Formátování řetězců v C++ pro VEX EXP používá specifikátory formátu printfk vytváření řetězců, které obsahují proměnné, výrazy nebo hodnoty. Tato metoda používá specifikátory formátu jako %d, %f, %satd. k vkládání hodnot do řetězců.

Formátování čísel – Vkládání hodnot a výrazů do řetězce.

  • %d — Formátuje celá čísla.

  • %.xf — Nastaví počet desetinných míst, která se mají zobrazit pro čísla s desetinnou čárkou.

  • %x — Naformátuje číslo jako hexadecimální.

  • %c — Formátuje jednotlivé znaky.

  • %s — Formátuje řetězce ve stylu jazyka C.

Kombinování řetězců – Kombinování textu a hodnot.

  • strcat — Ruční zřetězení řetězců ve stylu C.

Kontrola podřetězců – Test přítomnosti nebo pozice textu.

  • strstr — Najde podřetězec v řetězci.

Escape sekvence – formátování výstupu pomocí speciálních znaků.

  • \n — Přidá zalomení řádku (nový řádek).

Formátování čísel#

Jazyk C++ používá specifikátory formátu k řízení toho, jak se čísla a další datové typy zobrazují v řetězcích.

Integers#

Formátuje celočíselné hodnoty pomocí specifikátoru formátu %d.

Format specifiers
%d

Parameters

Tento specifikátor formátu nemá parametry.

Return Values

Naformátuje celočíselnou hodnotu v řetězci jako celé číslo.

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#

Řídí, kolik desetinných míst se zobrazí u čísla s plovoucí desetinnou čárkou pomocí specifikátoru formátu %.xf.

Format specifiers
%.xf

Parameters

Parametr

Typ

Popis

x

int

Počet desetinných míst, které se mají zobrazit.

Return Values

Naformátuje hodnotu s plovoucí desetinnou čárkou se zadaným počtem desetinných míst.

Examples
// Display pi with 2 decimal places
double pi = 3.1415926535;
Brain.Screen.print("Pi: %.2f", pi);

Hexadecimal#

Převede čísla do hexadecimálního zápisu pomocí %x (malá písmena) nebo %X (velká písmena).

Format specifiers

1 — Formátuje čísla jako malá hexadecimální.

%x

2 — Formátuje čísla jako velká hexadecimální písmena.

%X

Parameters

Tento specifikátor formátu nemá parametry.

Return Values

Naformátuje celočíselnou hodnotu jako hexadecimální řetězec.

Examples
// Convert 255 to hexadecimal
int number = 255;

// Display hexadecimals 
Brain.Screen.print("Hex: %x", number);

Brain.Screen.print("Hex: 0x%X", number);

Characters#

Formátuje jednotlivé znaky pomocí specifikátoru formátu %c.

Format specifiers
%c

Parameters

Tento specifikátor formátu nemá parametry.

Return Values

Naformátuje hodnotu znaku jako jeden znak.

Examples
char letter = 'A';

// Display a single character variable
Brain.Screen.print("Letter: %c", letter);

Strings#

Formátuje řetězce ve stylu jazyka C (pole znaků) pomocí specifikátoru formátu %s.

Format specifiers
%s

Parameters

Tento specifikátor formátu nemá parametry.

Return Values

Naformátuje řetězcovou hodnotu jako text.

Examples
char message[] = "EXP";

// Display a string variable
Brain.Screen.print("Hello, %s", message);

Kombinování řetězců#

Spojí dva řetězce dohromady pomocí funkce strcat.

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

Parameters

Parametr

Typ

Popis

string1

char*

Řetězec, který se má přidat. Musí obsahovat místo pro nový text.

string2

const char*

Řetězec, který chcete přidat.

Return Values

Vrátí ukazatel na výsledný řetězec (string1).

Notes
  • Ujistěte se, že řetězec má dostatek místa vyhrazeného pro přidávané znaky. Přidání znaků do příliš malého řetězce může přepsat jiné proměnné a způsobit neočekávané chování.

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

Kontrola podřetězců#

Vrací ukazatel na pozici prvního výskytu řetězce ve stylu jazyka C v jiném řetězci pomocí funkce strstr.

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

Parameters

Parametr

Typ

Popis

str

const char*

Ukazatel na prohledávaný řetězec.

substring

const char*

Řetězec, který se má vyhledat.

Return Values

Vrací ukazatel na první výskyt podřetězce, nebo NULL pokud řetězec nebyl nalezen.

Examples
char message[] = "Hey everyone!";

// Display if "Hey" is in the variable
if (strstr(message, "Hey") != NULL) {
    Brain.Screen.print("Hello!");
}

Únikové sekvence#

Escape sekvence jsou speciální znaky používané uvnitř řetězců k formátování textového výstupu.

New Line#

Přesune text na nový řádek při tisku pomocí escape sekvence \n.

Format specifiers
\n

Parameters

Tato escape sekvence nemá parametry.

Return Values

Vloží do výstupu znak nového řádku.

Notes
  • Toto funguje pouze v konzoli. Text se do konzole odešle až po zahájení nového řádku.

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