Форматування користувацьких рядків#
Вступ#
Форматування рядків у C++ для VEX IQ (1-го покоління) використовує специфікатори формату в стилі printf printfщо містять змінні, вирази або значення. Цей метод використовує специфікатори формату, такі як %d, %f, %sтощо, для вставки значень у рядки.
Форматування чисел — вставка значень та виразів у рядок.
%d— Форматує цілі числа.%.xf— Встановлює кількість знаків після коми, які відображаються для чисел з плаваючою комою.%x— Форматує число як шістнадцяткове.%c— Форматує окремі символи.%s— Форматує рядки у стилі C.
Об’єднання рядків — об’єднання тексту та значень.
strcat— Ручне об’єднання рядків у стилі C.
Перевірка підрядків — перевірка наявності або розташування тексту.
strstr— Знаходить підрядок у рядку.
Екрануючі послідовності — форматування виводу за допомогою спеціальних символів.
\n— Додає розрив рядка (новий рядок).
Форматування чисел#
C++ використовує специфікатори формату для керування тим, як числа та інші типи даних відображаються в рядках.
Integers#
Форматує цілі числа за допомогою специфікатора формату %d.
%d
Цей специфікатор формату не має параметрів.
Return ValuesФорматує цілочисельне значення як ціле число в рядку.
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#
Визначає, скільки знаків після коми відображається у числі з плаваючою комою, використовуючи специфікатор формату %.xf.
%.xf
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Кількість знаків після коми, яку потрібно відобразити. |
Форматує значення з плаваючою комою, використовуючи задану кількість знаків після коми.
Examples// Display pi with 2 decimal places
double pi = 3.1415926535;
Brain.Screen.print("Pi: %.2f", pi);
Hexadecimal#
Перетворює числа у шістнадцяткове представлення, використовуючи %x (нижній регістр) або %X (верхній регістр).
1 — Форматує числа як малі шістнадцяткові числа.
%x
Parameters2 — Форматує числа у верхній шістнадцятковій системі числення.
%X
Цей специфікатор формату не має параметрів.
Return ValuesФорматує ціле значення як шістнадцятковий рядок.
Examples// Convert 255 to hexadecimal
int number = 255;
// Display hexadecimals
Brain.Screen.print("Hex: %x", number);
Brain.Screen.print("Hex: 0x%X", number);
Characters#
Форматує окремі символи за допомогою специфікатора формату %c.
%c
Цей специфікатор формату не має параметрів.
Return ValuesФорматує значення символу як один символ.
Exampleschar letter = 'A';
// Display a single character variable
Brain.Screen.print("Letter: %c", letter);
Strings#
Форматує рядки у стилі C (масиви символів) за допомогою специфікатора формату %s.
%s
Цей специфікатор формату не має параметрів.
Return ValuesФорматує рядкове значення як текст.
Exampleschar message[] = "IQ";
// Display a string variable
Brain.Screen.print("Hello, %s", message);
Об’єднання рядків#
Об’єднує два рядки разом за допомогою функції strcat.
char* strcat(char* string1, const char* string2);
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Рядок, до якого потрібно додати. Повинно бути місце для нового тексту. |
|
|
Рядок, який потрібно додати. |
Повертає вказівник на результуючий рядок (string1).
Переконайтеся, що в рядку зарезервовано достатньо місця для доданих символів. Додавання символів до занадто малого рядка може перезаписати інші змінні та призвести до неочікуваної поведінки.
// 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);
Перевірка на наявність підрядків#
Повертає вказівник на позицію першого входження рядка у стилі C в інший рядок за допомогою функції strstr.
char* strstr(const char* str, const char* substring);
Параметр |
Тип |
Опис |
|---|---|---|
|
|
Вказівник на рядок, у якому виконується пошук. |
|
|
Рядок для пошуку. |
Повертає вказівник на перше входження підрядка, або NULL якщо рядок не знайдено.
char message[] = "Hey everyone!";
// Display if "Hey" is in the variable
if (strstr(message, "Hey") != NULL) {
Brain.Screen.print("Hello!");
}
Ескейп-послідовності#
Escape-послідовності – це спеціальні символи, що використовуються всередині рядків для форматування виводу тексту.
New Line#
Переміщує текст на новий рядок під час друку з використанням керуючої послідовності \n.
\n
Ця керуюча послідовність не має параметрів.
Return ValuesВставляє символ нового рядка у вивід.
NotesЦе працює лише в консолі. Текст не буде надіслано в консоль, доки не буде розпочато новий рядок.
// Display text on two lines
printf("First line\nSecond line\n");