Mukautettu merkkijonon muotoilu#
Johdanto#
C++:n merkkijonojen muotoilu VEX IQ:ssa (1. sukupolvi) käyttää printf-tyylisiä muotoilumäärittelijöitä muuttujia, lausekkeita tai arvoja sisältävien merkkijonojen luomiseen. Tässä menetelmässä käytetään muotoilumäärittelijöitä, kuten %d, %f, %sjne., arvojen lisäämiseen merkkijonoihin.
Lukujen muotoilu — Lisää arvoja ja lausekkeita merkkijonoon.
%d— Muotoilee kokonaislukuja.%.xf— Asettaa liukulukujen desimaalien määrän.%x— Muotoilee luvun heksadesimaaliluvuksi.%c— Muotoilee yksittäisiä merkkejä.%s— Muotoilee C-tyylisiä merkkijonoja.
Merkkijonojen yhdistäminen — Yhdistä tekstiä ja arvoja.
strcat— Yhdistä C-tyyliset merkkijonot manuaalisesti.
Alimerkkijonojen tarkistus — Testaa tekstin olemassaoloa tai sijaintia.
strstr— Etsii merkkijonosta alimerkkijonon.
Escape-sekvenssit — Muotoile tuloste erikoismerkeillä.
\n— Lisää rivinvaihdon (uusi rivi).
Numeroiden muotoilu#
C++ käyttää muotoilumäärittelijöitä hallitakseen sitä, miten numerot ja muut tietotyypit näkyvät merkkijonoissa.
Integers#
Muotoilee kokonaislukuarvot käyttämällä %d -muotoilumääritettä.
%d
Tällä muotomäärittimellä ei ole parametreja.
Return ValuesMuotoilee kokonaisluvun arvon kokonaisluvuksi merkkijonossa.
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#
Määrittää, kuinka monella desimaalipisteellä liukuluku näytetään käytettäessä %.xf -muotoa.
%.xf
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Näytettävien desimaalien määrä. |
Muotoilee liukulukuarvon määritetyllä määrällä desimaaleja.
Examples// Display pi with 2 decimal places
double pi = 3.1415926535;
Brain.Screen.print("Pi: %.2f", pi);
Hexadecimal#
Muuntaa luvut heksadesimaalimuotoon käyttäen numeroita %x (pienet kirjaimet) tai %X (isot kirjaimet).
1 — Muotoilee numerot pieniksi heksadesimaaliluvuiksi.
%x
Parameters2 — Muotoilee numerot isoiksi heksadesimaaliluvuiksi.
%X
Tällä muotomäärittimellä ei ole parametreja.
Return ValuesMuotoilee kokonaislukuarvon heksadesimaalimerkkijonoksi.
Examples// Convert 255 to hexadecimal
int number = 255;
// Display hexadecimals
Brain.Screen.print("Hex: %x", number);
Brain.Screen.print("Hex: 0x%X", number);
Characters#
Muotoilee yksittäisiä merkkejä käyttämällä %c -muotoilumääritettä.
%c
Tällä muotomäärittimellä ei ole parametreja.
Return ValuesMuotoilee merkin arvon yhdeksi merkiksi.
Exampleschar letter = 'A';
// Display a single character variable
Brain.Screen.print("Letter: %c", letter);
Strings#
Muotoilee C-tyylisiä merkkijonoja (merkkitaulukoita) käyttämällä %s -muotoilumääritettä.
%s
Tällä muotomäärittimellä ei ole parametreja.
Return ValuesMuotoilee merkkijonon arvon tekstiksi.
Exampleschar message[] = "IQ";
// Display a string variable
Brain.Screen.print("Hello, %s", message);
Merkkijonojen yhdistäminen#
Yhdistää kaksi merkkijonoa käyttämällä strcat -funktiota.
char* strcat(char* string1, const char* string2);
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Merkkijono, johon lisätään. Uudelle tekstille on oltava tilaa. |
|
|
Lisättävä merkkijono. |
Palauttaa osoittimen tuloksena olevaan merkkijonoon (string1).
Varmista, että merkkijonossa on riittävästi tilaa lisättäville merkeille. Liian lyhyeen merkkijonoon lisätyt merkit voivat korvata muita muuttujia ja aiheuttaa odottamatonta toimintaa.
// 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);
Alimerkkijonojen tarkistus#
Palauttaa osoittimen C-tyylisen merkkijonon ensimmäisen esiintymän sijaintiin toisessa merkkijonossa käyttäen funktiota strstr.
char* strstr(const char* str, const char* substring);
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Osoitin etsittävään merkkijonoon. |
|
|
Etsittävä merkkijono. |
Palauttaa osoittimen alimerkkijonon ensimmäiseen esiintymään tai arvon NULL jos merkkijonoa ei löydy.
char message[] = "Hey everyone!";
// Display if "Hey" is in the variable
if (strstr(message, "Hey") != NULL) {
Brain.Screen.print("Hello!");
}
Escape-sekvenssit#
Escape-sekvenssit ovat merkkijonojen sisällä käytettäviä erikoismerkkejä tekstitulosteen muotoiluun.
New Line#
Siirtää tekstin uudelle riville tulostettaessa käyttämällä \n -ohjausmerkkijonoa.
\n
Tällä ohjausmerkkijonolla ei ole parametreja.
Return ValuesLisää rivinvaihdon merkin tulosteeseen.
NotesTämä toimii vain konsolissa. Tekstiä ei lähetetä konsoliin ennen kuin uusi rivi aloitetaan.
// Display text on two lines
printf("First line\nSecond line\n");