自訂字串格式#

介紹#

在 C++ 中 VEX EXP 的字串格式化使用 printf的格式說明符來建立包含變數、表達式或值的字串。此方法使用類似 %d %f%s的格式說明符將值插入字串中。

格式化數字-在字串中插入值和表達式。

  • %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#

使用 %s 格式說明符格式化 C 風格的字串(字元陣列)。

Format specifiers
%s

Parameters

此格式說明符沒有參數。

Return Values

將字串值格式化為文字。

Examples
char message[] = "EXP";

// 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, " EXP");

// Display the combined strings
Brain.Screen.print("%s", message);

檢查子字串#

使用 strstr 傳回指向另一個字串中 C 風格字串首次出現位置的指標。

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!");
}

轉義序列#

轉義序列是字串中用於格式化文字輸出的特殊字元。

New Line#

使用 \n 轉義序列在列印時將文字移到新行。

Format specifiers
\n

Parameters

此轉義序列沒有參數。

Return Values

在輸出中插入換行符。

Notes
  • 此功能僅適用於控制台。文字只有在換行符號出現後才會傳送到控制台。

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