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.
%d
Tento specifikátor formátu nemá parametry.
Return ValuesNaformátuje celočíselnou hodnotu v řetězci jako celé číslo.
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#
Řídí, kolik desetinných míst se zobrazí u čísla s plovoucí desetinnou čárkou pomocí specifikátoru formátu %.xf.
%.xf
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Počet desetinných míst, které se mají zobrazit. |
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).
1 — Formátuje čísla jako malá hexadecimální.
%x
Parameters2 — Formátuje čísla jako velká hexadecimální písmena.
%X
Tento specifikátor formátu nemá parametry.
Return ValuesNaformá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.
%c
Tento specifikátor formátu nemá parametry.
Return ValuesNaformátuje hodnotu znaku jako jeden znak.
Exampleschar 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.
%s
Tento specifikátor formátu nemá parametry.
Return ValuesNaformátuje řetězcovou hodnotu jako text.
Exampleschar message[] = "EXP";
// Display a string variable
Brain.Screen.print("Hello, %s", message);
Kombinování řetězců#
Spojí dva řetězce dohromady pomocí funkce strcat.
char* strcat(char* string1, const char* string2);
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Řetězec, který se má přidat. Musí obsahovat místo pro nový text. |
|
|
Řetězec, který chcete přidat. |
Vrátí ukazatel na výsledný řetězec (string1).
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í.
// 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.
char* strstr(const char* str, const char* substring);
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Ukazatel na prohledávaný řetězec. |
|
|
Řetězec, který se má vyhledat. |
Vrací ukazatel na první výskyt podřetězce, nebo NULL pokud řetězec nebyl nalezen.
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.
\n
Tato escape sekvence nemá parametry.
Return ValuesVloží do výstupu znak nového řádku.
NotesToto funguje pouze v konzoli. Text se do konzole odešle až po zahájení nového řádku.
// Display text on two lines
printf("First line\nSecond line\n");