Пользовательское форматирование строк#

Введение#

В C++ для VEX IQ (1-го поколения) форматирование строк использует спецификаторы формата в стиле 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 ( 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 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!");
}

Последовательности побега#

Экранирующие последовательности — это специальные символы, используемые внутри строк для форматирования текстового вывода.

New Line#

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

Format specifiers
\n

Parameters

Данная управляющая последовательность не имеет параметров.

Return Values

Вставляет символ новой строки в вывод.

Notes
  • Это работает только в консоли. Текст не будет отправлен в консоль, пока не будет начата новая строка.

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