การจัดรูปแบบสตริงแบบกำหนดเอง#

การแนะนำ#

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

Format specifiers
%d

Parameters

ตัวระบุรูปแบบนี้ไม่มีพารามิเตอร์

Return Values

แปลงค่าจำนวนเต็มให้เป็นจำนวนเต็มในสตริง

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#

ควบคุมจำนวนตำแหน่งทศนิยมที่จะแสดงตัวเลขทศนิยมโดยใช้ตัวระบุรูปแบบ %.xf

Format specifiers
%.xf

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

x

int

จำนวนตำแหน่งทศนิยมที่จะแสดง

Return Values

จัดรูปแบบค่าทศนิยมด้วยจำนวนตำแหน่งทศนิยมที่ระบุ

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

Hexadecimal#

แปลงตัวเลขเป็นรูปแบบเลขฐานสิบหกโดยใช้ %x (ตัวพิมพ์เล็ก) หรือ %X (ตัวพิมพ์ใหญ่)

Format specifiers

1 — จัดรูปแบบตัวเลขเป็นเลขฐานสิบหกตัวพิมพ์เล็ก

%x

2 — จัดรูปแบบตัวเลขเป็นเลขฐานสิบหกตัวพิมพ์ใหญ่

%X

Parameters

ตัวระบุรูปแบบนี้ไม่มีพารามิเตอร์

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

Format specifiers
%c

Parameters

ตัวระบุรูปแบบนี้ไม่มีพารามิเตอร์

Return Values

จัดรูปแบบค่าอักขระให้เป็นอักขระตัวเดียว

Examples
char letter = 'A';

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

Strings#

จัดรูปแบบสตริงแบบ C (อาร์เรย์อักขระ) โดยใช้ตัวระบุรูปแบบ %s

Format specifiers
%s

Parameters

ตัวระบุรูปแบบนี้ไม่มีพารามิเตอร์

Return Values

แปลงค่าสตริงให้เป็นข้อความ

Examples
char message[] = "IQ";

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

การรวมสตริง#

รวมสตริงสองสตริงเข้าด้วยกันโดยใช้ฟังก์ชัน strcat

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

string1

char*

ข้อความที่จะต่อเติม ต้องมีพื้นที่ว่างสำหรับข้อความใหม่

string2

const char*

ข้อความที่คุณต้องการเพิ่ม

Return Values

ส่งคืนพอยเตอร์ไปยังสตริงผลลัพธ์ (string1)

Notes
  • ตรวจสอบให้แน่ใจว่าสตริงมีพื้นที่ว่างเพียงพอสำหรับอักขระที่จะเพิ่มเข้าไป การเพิ่มอักขระลงในสตริงที่มีขนาดเล็กเกินไปอาจเขียนทับตัวแปรอื่นๆ และทำให้เกิดพฤติกรรมที่ไม่คาดคิดได้

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

การตรวจสอบสตริงย่อย#

ส่งคืนพอยเตอร์ไปยังตำแหน่งของการปรากฏครั้งแรกของสตริงแบบ C ในสตริงอื่นโดยใช้ฟังก์ชัน strstr

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

str

const char*

ตัวชี้ไปยังสตริงที่กำลังค้นหา

substring

const char*

ข้อความที่ต้องการค้นหา

Return Values

ส่งคืนพอยเตอร์ไปยังตำแหน่งแรกที่ตรงกับสตริงย่อย หรือ NULL หากไม่พบสตริงนั้น

Examples
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

Format specifiers
\n

Parameters

ลำดับการหลีกเลี่ยงนี้ไม่มีพารามิเตอร์

Return Values

แทรกอักขระขึ้นบรรทัดใหม่ในผลลัพธ์

Notes
  • ฟังก์ชันนี้ใช้งานได้เฉพาะบนคอนโซลเท่านั้น ข้อความจะไม่ถูกส่งไปยังคอนโซลจนกว่าจะมีการขึ้นบรรทัดใหม่

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