Niestandardowe formatowanie ciągu znaków#
Wstęp#
String formatting in C++ for VEX IQ (2nd gen) 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.
Formatowanie liczb — wstawianie wartości i wyrażeń do ciągu.
%d— Formatuje liczby całkowite.%.xf— Ustawia liczbę miejsc dziesiętnych wyświetlanych dla liczb zmiennoprzecinkowych.%x— Formatuje liczbę jako szesnastkową.%c— Formatuje pojedyncze znaki.%s— Formatuje ciągi znaków w stylu C.
Łączenie ciągów — łączenie tekstu i wartości.
strcat— Ręczne łączenie ciągów w stylu C.
Sprawdzanie podciągów — test obecności i położenia tekstu.
strstr— Znajduje podciąg w ciągu.
Sekwencje wyjścia — formatowanie wyników przy użyciu znaków specjalnych.
\n— Dodaje podział wiersza (nowy wiersz).
Formatowanie liczb#
Język C++ używa specyfikatorów formatu w celu kontrolowania sposobu wyświetlania liczb i innych typów danych w ciągach znaków.
Integers#
Formatuje wartości całkowite przy użyciu specyfikatora formatu %d.
%d
Ten specyfikator formatu nie ma parametrów.
Return ValuesFormatuje wartość całkowitą jako liczbę całkowitą w ciągu.
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#
Steruje liczbą miejsc dziesiętnych wyświetlaną w liczbach zmiennoprzecinkowych, używając specyfikatora formatu %.xf.
%.xf
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Liczba miejsc dziesiętnych do wyświetlenia. |
Formatuje wartość zmiennoprzecinkową, podając określoną liczbę miejsc dziesiętnych.
Examples// Display pi with 2 decimal places
double pi = 3.1415926535;
Brain.Screen.print("Pi: %.2f", pi);
Hexadecimal#
Konwertuje liczby na system szesnastkowy, używając %x (małe litery) lub %X (wielkie litery).
1 — Formatuje liczby jako małe litery szesnastkowe.
%x
Parameters2 — Formatuje liczby jako wielkie litery szesnastkowe.
%X
Ten specyfikator formatu nie ma parametrów.
Return ValuesFormatuje wartość całkowitą jako ciąg szesnastkowy.
Examples// Convert 255 to hexadecimal
int number = 255;
// Display hexadecimals
Brain.Screen.print("Hex: %x", number);
Brain.Screen.print("Hex: 0x%X", number);
Characters#
Formatuje pojedyncze znaki używając specyfikatora formatu %c.
%c
Ten specyfikator formatu nie ma parametrów.
Return ValuesFormatuje wartość znaku jako pojedynczy znak.
Exampleschar letter = 'A';
// Display a single character variable
Brain.Screen.print("Letter: %c", letter);
Strings#
Formatuje ciągi znaków w stylu C (tablice znaków) przy użyciu specyfikatora formatu %s.
%s
Ten specyfikator formatu nie ma parametrów.
Return ValuesFormatuje wartość ciągu jako tekst.
Exampleschar message[] = "IQ";
// Display a string variable
Brain.Screen.print("Hello, %s", message);
Łączenie strun#
Łączy dwa ciągi znaków za pomocą funkcji strcat strcat.
char* strcat(char* string1, const char* string2);
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Ciąg, do którego ma zostać dodany tekst. Musi być miejsce na nowy tekst. |
|
|
Ciąg, który chcesz dodać. |
Zwraca wskaźnik do wynikowego ciągu (string1).
Upewnij się, że ciąg ma wystarczająco dużo miejsca zarezerwowanego na dodawane znaki. Dodanie zbyt krótkich znaków do ciągu może nadpisać inne zmienne i spowodować nieoczekiwane zachowanie.
// 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);
Sprawdzanie podciągów#
Zwraca wskaźnik do pozycji pierwszego wystąpienia ciągu w stylu C w innym ciągu przy użyciu funkcji strstr.
char* strstr(const char* str, const char* substring);
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Wskaźnik do przeszukiwanego ciągu. |
|
|
Ciąg znaków do wyszukania. |
Zwraca wskaźnik do pierwszego wystąpienia podciągu lub NULL jeśli ciąg nie został znaleziony.
char message[] = "Hey everyone!";
// Display if "Hey" is in the variable
if (strstr(message, "Hey") != NULL) {
Brain.Screen.print("Hello!");
}
Sekwencje ucieczki#
Sekwencje wyjścia to specjalne znaki używane wewnątrz ciągów znaków w celu formatowania tekstu wyjściowego.
New Line#
Przenosi tekst do nowego wiersza podczas drukowania za pomocą sekwencji wyjścia \n.
\n
Ta sekwencja ucieczki nie ma parametrów.
Return ValuesWstawia znak nowej linii w wynikach.
NotesDziała to tylko na konsoli. Tekst nie zostanie wysłany na konsolę, dopóki nie zostanie rozpoczęty nowy wiersz.
// Display text on two lines
printf("First line\nSecond line\n");