Custom String Formatting#

Introduction#

String formatting in C++ for VEX V5 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.

Formatting Numbers — Insert values and expressions into a string.

  • %d — Formats integers.

  • %.xf — Sets the number of decimal places to show for floats.

  • %x — Formats a number as hexadecimal.

  • %c — Formats single characters.

  • %s — Formats C-style strings.

Combining Strings — Combine text and values.

  • strcat — Concatenate C-style strings manually.

Checking for Substrings — Test for presence or position of text.

  • strstr — Finds a substring within a string.

Escape Sequences — Format output with special characters.

  • \n — Adds a line break (new line).

Formatting Numbers#

C++ uses format specifiers to control how numbers and other data types appear in strings.

Integers#

Formats integer values using the %d format specifier.

Format specifiers
%d

Parameters

This format specifier does not have parameters.

Return Values

Formats the integer value as an integer in the string.

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#

Controls how many decimal places a floating-point number is displayed with using the %.xf format specifier.

Format specifiers
%.xf

Parameters

Parameter

Type

Description

x

int

The number of decimal places to show.

Return Values

Formats the floating-point value with the specified number of decimal places.

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

Hexadecimal#

Converts numbers to hexadecimal representation using %x (lowercase) or %X (uppercase).

Format specifiers

1 Formats numbers as lowercase hexadecimal.

%x

2 Formats numbers as uppercase hexadecimal.

%X

Parameters

This format specifier does not have parameters.

Return Values

Formats the integer value as a hexadecimal string.

Examples
// Convert 255 to hexadecimal
int number = 255;

// Display hexadeximals 
Brain.Screen.print("Hex: %x", number);

Brain.Screen.print("Hex: 0x%X", number);

Characters#

Formats single characters using the %c format specifier.

Format specifiers
%c

Parameters

This format specifier does not have parameters.

Return Values

Formats the character value as a single character.

Examples
char letter = 'A';

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

Strings#

Formats C-style strings (character arrays) using the %s format specifier.

Format specifiers
%s

Parameters

This format specifier does not have parameters.

Return Values

Formats the string value as text.

Examples
char message[] = "V5";

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

Combining Strings#

Combines two strings together using the strcat function.

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

Parameters

Parameter

Type

Description

string1

char*

The string to add onto. Must have space for the new text.

string2

const char*

The string you want to add.

Return Values

Returns a pointer to the resulting string (string1).

Notes
  • Make sure that the string has enough space reserved for the characters that are being appended. Adding characters to a string that is too small can overwrite other variables and cause unexpected behavior.

Examples
// Make sure the variable has enough space
// for all characters (set it to 20)
char message[20] = "Hello,";
strcat(message, " V5");

// Display the combined strings
Brain.Screen.print("%s", message);

Checking for Substrings#

Returns a pointer to the position of the first occurrence of a C-style string in another string using the strstr function.

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

Parameters

Parameter

Type

Description

str

const char*

A pointer to the string being searched.

substring

const char*

The string to search for.

Return Values

Returns a pointer to the first occurrence of the substring, or NULL if the string is not found.

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

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

Escape Sequences#

Escape sequences are special characters used inside strings to format text output.

New Line#

Moves text to a new line when printing using the \n escape sequence.

Format specifiers
\n

Parameters

This escape sequence does not have parameters.

Return Values

Inserts a newline character in the output.

Notes
  • This only works on the console. Text will not be sent to the console until a new line is started.

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