Προσαρμοσμένη μορφοποίηση συμβολοσειρών#
Εισαγωγή#
Η μορφοποίηση συμβολοσειρών σε C++ για VEX EXP χρησιμοποιεί προσδιοριστές μορφοποίησης printfγια τη δημιουργία συμβολοσειρών που περιλαμβάνουν μεταβλητές, εκφράσεις ή τιμές. Αυτή η μέθοδος χρησιμοποιεί προσδιοριστές μορφοποίησης όπως %d, %f, %s, κ.λπ., για την εισαγωγή τιμών σε συμβολοσειρές.
Μορφοποίηση αριθμών — Εισαγωγή τιμών και παραστάσεων σε μια συμβολοσειρά.
%d— Μορφοποιεί ακέραιους αριθμούς.%.xf— Ορίζει τον αριθμό των δεκαδικών ψηφίων που θα εμφανίζονται για τους αριθμούς κινητής υποδιαστολής.%x— Μορφοποιεί έναν αριθμό ως δεκαεξαδικό.%c— Μορφοποιεί μεμονωμένους χαρακτήρες.%s— Μορφοποιεί συμβολοσειρές τύπου C.
Συνδυασμός συμβολοσειρών — Συνδυάστε κείμενο και τιμές.
strcat— Συνδέστε συμβολοσειρές τύπου C χειροκίνητα.
Έλεγχος για υποσυμβολοσειρές — Έλεγχος για παρουσία ή θέση κειμένου.
strstr— Εντοπίζει μια δευτερεύουσα συμβολοσειρά μέσα σε μια συμβολοσειρά.
Ακολουθίες διαφυγής — Μορφοποίηση εξόδου με ειδικούς χαρακτήρες.
\n— Προσθέτει αλλαγή γραμμής (νέα γραμμή).
Μορφοποίηση αριθμών#
Η C++ χρησιμοποιεί προσδιοριστές μορφοποίησης για να ελέγχει τον τρόπο με τον οποίο εμφανίζονται οι αριθμοί και άλλοι τύποι δεδομένων σε συμβολοσειρές.
Integers#
Μορφοποιεί ακέραιες τιμές χρησιμοποιώντας τον προσδιοριστή μορφοποίησης %d.
%d
Αυτός ο προσδιοριστής μορφής δεν έχει παραμέτρους.
Return ValuesΜορφοποιεί την ακέραια τιμή ως ακέραιο αριθμό στη συμβολοσειρά.
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#
Ελέγχει τον αριθμό δεκαδικών ψηφίων με τον οποίο εμφανίζεται ένας αριθμός κινητής υποδιαστολής χρησιμοποιώντας τον προσδιοριστή μορφής %.xf.
%.xf
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Ο αριθμός των δεκαδικών ψηφίων που θα εμφανιστούν. |
Μορφοποιεί την τιμή κινητής υποδιαστολής με τον καθορισμένο αριθμό δεκαδικών ψηφίων.
Examples// Display pi with 2 decimal places
double pi = 3.1415926535;
Brain.Screen.print("Pi: %.2f", pi);
Hexadecimal#
Μετατρέπει αριθμούς σε δεκαεξαδική αναπαράσταση χρησιμοποιώντας %x (πεζά) ή %X (κεφαλαία).
1 — Μορφοποιεί τους αριθμούς ως πεζούς δεκαεξαδικούς αριθμούς.
%x
Parameters2 — Μορφοποιεί τους αριθμούς ως κεφαλαία δεκαεξαδικά.
%X
Αυτός ο προσδιοριστής μορφής δεν έχει παραμέτρους.
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.
%c
Αυτός ο προσδιοριστής μορφής δεν έχει παραμέτρους.
Return ValuesΜορφοποιεί την τιμή του χαρακτήρα ως έναν μόνο χαρακτήρα.
Exampleschar letter = 'A';
// Display a single character variable
Brain.Screen.print("Letter: %c", letter);
Strings#
Μορφοποιεί συμβολοσειρές τύπου C (πίνακες χαρακτήρων) χρησιμοποιώντας τον προσδιοριστή μορφής %s.
%s
Αυτός ο προσδιοριστής μορφής δεν έχει παραμέτρους.
Return ValuesΜορφοποιεί την τιμή συμβολοσειράς ως κείμενο.
Exampleschar message[] = "EXP";
// Display a string variable
Brain.Screen.print("Hello, %s", message);
Συνδυασμός χορδών#
Συνδυάζει δύο συμβολοσειρές χρησιμοποιώντας τη συνάρτηση strcat.
char* strcat(char* string1, const char* string2);
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Η συμβολοσειρά στην οποία θα προστεθεί. Πρέπει να υπάρχει χώρος για το νέο κείμενο. |
|
|
Η συμβολοσειρά που θέλετε να προσθέσετε. |
Επιστρέφει έναν δείκτη στην προκύπτουσα συμβολοσειρά (string1).
Βεβαιωθείτε ότι η συμβολοσειρά έχει αρκετό χώρο για τους χαρακτήρες που προστίθενται. Η προσθήκη χαρακτήρων σε μια συμβολοσειρά που είναι πολύ μικρή μπορεί να αντικαταστήσει άλλες μεταβλητές και να προκαλέσει μη αναμενόμενη συμπεριφορά.
// Make sure the variable has enough space
// for all characters (set it to 20)
char message[20] = "Hello,";
strcat(message, " EXP");
// Display the combined strings
Brain.Screen.print("%s", message);
Έλεγχος για υποσυμβολοσειρές#
Επιστρέφει έναν δείκτη στη θέση της πρώτης εμφάνισης μιας συμβολοσειράς τύπου C σε μια άλλη συμβολοσειρά χρησιμοποιώντας τη συνάρτηση strstr.
char* strstr(const char* str, const char* substring);
Παράμετρος |
Τύπος |
Περιγραφή |
|---|---|---|
|
|
Ένας δείκτης προς τη συμβολοσειρά που αναζητείται. |
|
|
Η συμβολοσειρά που θα αναζητηθεί. |
Επιστρέφει έναν δείκτη στην πρώτη εμφάνιση της δευτερεύουσας συμβολοσειράς ή NULL εάν η συμβολοσειρά δεν βρεθεί.
char message[] = "Hey everyone!";
// Display if "Hey" is in the variable
if (strstr(message, "Hey") != NULL) {
Brain.Screen.print("Hello!");
}
Ακολουθίες διαφυγής#
Οι ακολουθίες διαφυγής είναι ειδικοί χαρακτήρες που χρησιμοποιούνται μέσα σε συμβολοσειρές για τη μορφοποίηση του κειμένου εξόδου.
New Line#
Μετακινεί το κείμενο σε νέα γραμμή κατά την εκτύπωση χρησιμοποιώντας την ακολουθία διαφυγής \n.
\n
Αυτή η ακολουθία διαφυγής δεν έχει παραμέτρους.
Return ValuesΕισάγει έναν χαρακτήρα νέας γραμμής στην έξοδο.
NotesΑυτό λειτουργεί μόνο στην κονσόλα. Το κείμενο δεν θα αποστέλλεται στην κονσόλα μέχρι να ξεκινήσει μια νέα γραμμή.
// Display text on two lines
printf("First line\nSecond line\n");