Пользовательское форматирование строк#
Введение#
В C++ для VEX IQ (2-го поколения) форматирование строк использует спецификаторы формата в стиле 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 ( 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 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!");
}
Последовательности побега#
Экранирующие последовательности — это специальные символы, используемые внутри строк для форматирования текстового вывода.
New Line#
Перемещает текст на новую строку при печати с использованием управляющей последовательности \n.
\n
Данная управляющая последовательность не имеет параметров.
Return ValuesВставляет символ новой строки в вывод.
NotesЭто работает только в консоли. Текст не будет отправлен в консоль, пока не будет начата новая строка.
// Display text on two lines
printf("First line\nSecond line\n");