Форматування користувацьких рядків#

Вступ#

Форматування рядків у C++ для VEX IQ (1-го покоління) використовує специфікатори формату в стилі printf printfщо містять змінні, вирази або значення. Цей метод використовує специфікатори формату, такі як %d, %f, %sтощо, для вставки значень у рядки.

Форматування чисел — вставка значень та виразів у рядок.

  • %d — Форматує цілі числа.

  • %.xf — Встановлює кількість знаків після коми, які відображаються для чисел з плаваючою комою.

  • %x — Форматує число як шістнадцяткове.

  • %c — Форматує окремі символи.

  • %s — Форматує рядки у стилі C.

Об’єднання рядків — об’єднання тексту та значень.

  • strcat — Ручне об’єднання рядків у стилі C.

Перевірка підрядків — перевірка наявності або розташування тексту.

  • strstr — Знаходить підрядок у рядку.

Екрануючі послідовності — форматування виводу за допомогою спеціальних символів.

  • \n — Додає розрив рядка (новий рядок).

Форматування чисел#

C++ використовує специфікатори формату для керування тим, як числа та інші типи даних відображаються в рядках.

Integers#

Форматує цілі числа за допомогою специфікатора формату %d.

Format specifiers
%d

Parameters

Цей специфікатор формату не має параметрів.

Return Values

Форматує цілочисельне значення як ціле число в рядку.

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#

Визначає, скільки знаків після коми відображається у числі з плаваючою комою, використовуючи специфікатор формату %.xf.

Format specifiers
%.xf

Parameters

Параметр

Тип

Опис

x

int

Кількість знаків після коми, яку потрібно відобразити.

Return Values

Форматує значення з плаваючою комою, використовуючи задану кількість знаків після коми.

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

Hexadecimal#

Перетворює числа у шістнадцяткове представлення, використовуючи %x (нижній регістр) або %X (верхній регістр).

Format specifiers

1 — Форматує числа як малі шістнадцяткові числа.

%x

2 — Форматує числа у верхній шістнадцятковій системі числення.

%X

Parameters

Цей специфікатор формату не має параметрів.

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.

Format specifiers
%c

Parameters

Цей специфікатор формату не має параметрів.

Return Values

Форматує значення символу як один символ.

Examples
char letter = 'A';

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

Strings#

Форматує рядки у стилі C (масиви символів) за допомогою специфікатора формату %s.

Format specifiers
%s

Parameters

Цей специфікатор формату не має параметрів.

Return Values

Форматує рядкове значення як текст.

Examples
char message[] = "IQ";

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

Об’єднання рядків#

Об’єднує два рядки разом за допомогою функції strcat.

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

Parameters

Параметр

Тип

Опис

string1

char*

Рядок, до якого потрібно додати. Повинно бути місце для нового тексту.

string2

const char*

Рядок, який потрібно додати.

Return Values

Повертає вказівник на результуючий рядок (string1).

Notes
  • Переконайтеся, що в рядку зарезервовано достатньо місця для доданих символів. Додавання символів до занадто малого рядка може перезаписати інші змінні та призвести до неочікуваної поведінки.

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

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

Parameters

Параметр

Тип

Опис

str

const char*

Вказівник на рядок, у якому виконується пошук.

substring

const char*

Рядок для пошуку.

Return Values

Повертає вказівник на перше входження підрядка, або NULL якщо рядок не знайдено.

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

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

Ескейп-послідовності#

Escape-послідовності – це спеціальні символи, що використовуються всередині рядків для форматування виводу тексту.

New Line#

Переміщує текст на новий рядок під час друку з використанням керуючої послідовності \n.

Format specifiers
\n

Parameters

Ця керуюча послідовність не має параметрів.

Return Values

Вставляє символ нового рядка у вивід.

Notes
  • Це працює лише в консолі. Текст не буде надіслано в консоль, доки не буде розпочато новий рядок.

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