Benutzerdefinierte Zeichenfolgenformatierung#

Einführung#

String formatting in C++ for VEX IQ (2nd gen) 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.

Zahlen formatieren – Werte und Ausdrücke in eine Zeichenkette einfügen.

  • %d — Formatiert ganze Zahlen.

  • %.xf — Legt die Anzahl der Dezimalstellen fest, die für Gleitkommazahlen angezeigt werden sollen.

  • %x — Formatiert eine Zahl als Hexadezimalzahl.

  • %c — Formatiert einzelne Zeichen.

  • %s — Formatiert Zeichenketten im C-Stil.

Zeichenketten kombinieren – Text und Werte kombinieren.

  • strcat — C-Strings manuell verketten.

Prüfung auf Teilzeichenketten – Test auf Vorhandensein oder Position von Text.

  • strstr — Findet eine Teilzeichenkette innerhalb einer Zeichenkette.

Escape-Sequenzen – Ausgabe mit Sonderzeichen formatieren.

  • \n — Fügt einen Zeilenumbruch (neue Zeile) ein.

Zahlen formatieren#

C++ verwendet Formatbezeichner, um zu steuern, wie Zahlen und andere Datentypen in Zeichenketten dargestellt werden.

Integers#

Formatiert ganzzahlige Werte unter Verwendung des Formatbezeichners %d.

Format specifiers
%d

Parameters

Dieser Formatbezeichner hat keine Parameter.

Return Values

Formatiert den ganzzahligen Wert als Ganzzahl in der Zeichenkette.

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#

Steuert, mit wie vielen Dezimalstellen eine Gleitkommazahl angezeigt wird, unter Verwendung des Formatbezeichners %.xf.

Format specifiers
%.xf

Parameters

Parameter

Typ

Beschreibung

x

int

Die Anzahl der anzuzeigenden Dezimalstellen.

Return Values

Formatiert den Gleitkommawert mit der angegebenen Anzahl an Dezimalstellen.

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

Hexadecimal#

Wandelt Zahlen in die hexadezimale Darstellung um, wobei %x (Kleinbuchstaben) oder %X (Großbuchstaben) verwendet werden.

Format specifiers

1 — Formatiert Zahlen als Kleinbuchstaben im Hexadezimalformat.

%x

2 — Formatiert Zahlen als Hexadezimalzahlen in Großbuchstaben.

%X

Parameters

Dieser Formatbezeichner hat keine Parameter.

Return Values

Formatiert den ganzzahligen Wert als hexadezimale Zeichenkette.

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

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

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

Characters#

Formatiert einzelne Zeichen mithilfe des Formatbezeichners %c.

Format specifiers
%c

Parameters

Dieser Formatbezeichner hat keine Parameter.

Return Values

Formatiert den Zeichenwert als einzelnes Zeichen.

Examples
char letter = 'A';

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

Strings#

Formatiert Zeichenketten im C-Stil (Zeichenarrays) unter Verwendung des Formatbezeichners %s.

Format specifiers
%s

Parameters

Dieser Formatbezeichner hat keine Parameter.

Return Values

Formatiert den String-Wert als Text.

Examples
char message[] = "IQ";

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

Kombination von Zeichenketten#

Kombiniert zwei Zeichenketten mithilfe der Funktion strcat.

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

Parameters

Parameter

Typ

Beschreibung

string1

char*

Die Zeichenkette, an die der neue Text angehängt werden soll. Sie muss genügend Platz für den neuen Text enthalten.

string2

const char*

Die Zeichenkette, die Sie hinzufügen möchten.

Return Values

Gibt einen Zeiger auf die resultierende Zeichenkette zurück (string1).

Notes
  • Stellen Sie sicher, dass die Zeichenkette genügend Speicherplatz für die anzuhängenden Zeichen bietet. Das Hinzufügen von Zeichen zu einer zu kleinen Zeichenkette kann andere Variablen überschreiben und zu unerwartetem Verhalten führen.

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);

Prüfung auf Teilzeichenketten#

Gibt einen Zeiger auf die Position des ersten Vorkommens einer Zeichenkette im C-Stil in einer anderen Zeichenkette unter Verwendung der Funktion strstr zurück.

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

Parameters

Parameter

Typ

Beschreibung

str

const char*

Ein Zeiger auf die zu durchsuchende Zeichenkette.

substring

const char*

Die zu suchende Zeichenkette.

Return Values

Gibt einen Zeiger auf das erste Vorkommen der Teilzeichenkette zurück, oder NULL falls die Zeichenkette nicht gefunden wird.

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

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

Fluchtsequenzen#

Escape-Sequenzen sind spezielle Zeichen, die innerhalb von Zeichenketten verwendet werden, um die Textausgabe zu formatieren.

New Line#

Verschiebt Text beim Drucken mithilfe der Escape-Sequenz \n in eine neue Zeile.

Format specifiers
\n

Parameters

Diese Escape-Sequenz hat keine Parameter.

Return Values

Fügt ein Zeilenumbruchzeichen in die Ausgabe ein.

Notes
  • Dies funktioniert nur in der Konsole. Text wird erst dann an die Konsole gesendet, wenn eine neue Zeile begonnen wird.

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