Anpassad strängformatering#
Introduktion#
Strängformatering i C++ för VEX IQ (1:a generationen) använder formatspecifikationer av typen printfför att skapa strängar som innehåller variabler, uttryck eller värden. Den här metoden använder formatspecifikationer som %d, %f, %s, etc., för att infoga värden i strängar.
Formatera tal — Infoga värden och uttryck i en sträng.
%d— Formaterar heltal.%.xf— Anger antalet decimaler som ska visas för flyttal.%x— Formaterar ett tal som hexadecimalt.%c— Formaterar enskilda tecken.%s— Formaterar strängar i C-stil.
Kombinera strängar — Kombinera text och värden.
strcat— Sammanfoga strängar i C-stil manuellt.
Kontrollerar delsträngar — Testar textens närvaro eller position.
strstr— Hittar en delsträng inom en sträng.
Escape-sekvenser — Formatera utdata med specialtecken.
\n— Lägger till en radbrytning (ny rad).
Formatera tal#
C++ använder formatspecifikationer för att styra hur tal och andra datatyper visas i strängar.
Integers#
Formaterar heltal med formatspecifikationen %d.
%d
Denna formatspecifikator har inga parametrar.
Return ValuesFormaterar heltalsvärdet som ett heltal i strängen.
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#
Styr hur många decimaler ett flyttal visas med hjälp av formatspecifikationen %.xf.
%.xf
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Antalet decimaler som ska visas. |
Formaterar flyttalvärdet med det angivna antalet decimaler.
Examples// Display pi with 2 decimal places
double pi = 3.1415926535;
Brain.Screen.print("Pi: %.2f", pi);
Hexadecimal#
Konverterar tal till hexadecimal representation med hjälp av %x (gemener) eller %X (versaler).
1 — Formaterar tal som gemener i hexadecimalt format.
%x
Parameters2 — Formaterar tal som versaler i hexadecimalt format.
%X
Denna formatspecifikator har inga parametrar.
Return ValuesFormaterar heltalsvärdet som en hexadecimal sträng.
Examples// Convert 255 to hexadecimal
int number = 255;
// Display hexadecimals
Brain.Screen.print("Hex: %x", number);
Brain.Screen.print("Hex: 0x%X", number);
Characters#
Formaterar enskilda tecken med formatspecifikationen %c.
%c
Denna formatspecifikator har inga parametrar.
Return ValuesFormaterar teckenvärdet som ett enda tecken.
Exampleschar letter = 'A';
// Display a single character variable
Brain.Screen.print("Letter: %c", letter);
Strings#
Formaterar strängar i C-stil (teckenmatriser) med formatspecifikationen %s.
%s
Denna formatspecifikator har inga parametrar.
Return ValuesFormaterar strängvärdet som text.
Exampleschar message[] = "IQ";
// Display a string variable
Brain.Screen.print("Hello, %s", message);
Kombinera strängar#
Kombinerar två strängar med hjälp av funktionen strcat.
char* strcat(char* string1, const char* string2);
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Strängen som ska läggas till. Måste ha utrymme för den nya texten. |
|
|
Strängen du vill lägga till. |
Returnerar en pekare till den resulterande strängen (string1).
Se till att strängen har tillräckligt med utrymme reserverat för de tecken som läggs till. Att lägga till tecken i en sträng som är för liten kan skriva över andra variabler och orsaka oväntat beteende.
// 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);
Kontrollerar delsträngar#
Returnerar en pekare till positionen för den första förekomsten av en C-stilsträng i en annan sträng med hjälp av funktionen strstr.
char* strstr(const char* str, const char* substring);
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
En pekare till strängen som söks. |
|
|
Strängen att söka efter. |
Returnerar en pekare till den första förekomsten av delsträngen, eller NULL om strängen inte hittas.
char message[] = "Hey everyone!";
// Display if "Hey" is in the variable
if (strstr(message, "Hey") != NULL) {
Brain.Screen.print("Hello!");
}
Escape-sekvenser#
Escape-sekvenser är specialtecken som används inuti strängar för att formatera textutdata.
New Line#
Flyttar text till en ny rad vid utskrift med hjälp av escape-sekvensen \n.
\n
Denna escape-sekvens har inga parametrar.
Return ValuesInfogar ett nyradstecken i utdata.
NotesDetta fungerar bara i konsolen. Text skickas inte till konsolen förrän en ny rad påbörjas.
// Display text on two lines
printf("First line\nSecond line\n");