การจัดรูปแบบสตริงแบบกำหนดเอง#
การแนะนำ#
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.
การจัดรูปแบบตัวเลข — การแทรกค่าและนิพจน์ลงในสตริง
%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[] = "IQ";
// 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, " IQ");
// 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!");
}
ลำดับการหลบหนี#
ลำดับการหลีกเลี่ยง (Escape sequences) คืออักขระพิเศษที่ใช้ภายในสตริงเพื่อจัดรูปแบบข้อความที่แสดงผล
New Line#
ย้ายข้อความขึ้นบรรทัดใหม่เมื่อพิมพ์โดยใช้ลำดับหลีกเลี่ยง \n
\n
ลำดับการหลีกเลี่ยงนี้ไม่มีพารามิเตอร์
Return Valuesแทรกอักขระขึ้นบรรทัดใหม่ในผลลัพธ์
Notesฟังก์ชันนี้ใช้งานได้เฉพาะบนคอนโซลเท่านั้น ข้อความจะไม่ถูกส่งไปยังคอนโซลจนกว่าจะมีการขึ้นบรรทัดใหม่
// Display text on two lines
printf("First line\nSecond line\n");