カスタム文字列フォーマット#
導入#
VEX IQ (第1世代) の C++ での文字列フォーマットでは、 printfスタイルのフォーマット指定子を使用して、変数、式、または値を含む文字列を作成します。このメソッドでは、 %d、 %f、 %sなどのフォーマット指定子を使用して、文字列に値を挿入します。
数値の書式設定 — 文字列に値と式を挿入します。
%d— 整数をフォーマットします。%.xf— 浮動小数点数に表示する小数点以下の桁数を設定します。%x— 数値を16進数としてフォーマットします。%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 (大文字)を使用して16進数表現に変換します。
1 — 数値を小文字の16進数としてフォーマットします。
%x
Parameters2 — 数値を大文字の16進数としてフォーマットします。
%X
この書式指定子にはパラメータがありません。
Return Values整数値を16進数文字列としてフォーマットします。
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文字値を1文字としてフォーマットします。
Exampleschar letter = 'A';
// Display a single character variable
Brain.Screen.print("Letter: %c", letter);
Strings#
%s フォーマット指定子を使用して、C スタイルの文字列 (文字配列) をフォーマットします。
%s
この書式指定子にはパラメータがありません。
Return Values文字列値をテキストとしてフォーマットします。
Exampleschar message[] = "IQ";
// Display a string variable
Brain.Screen.print("Hello, %s", message);
文字列の結合#
strcat を使用して 2 つの文字列を結合します。
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);
部分文字列のチェック#
strstr 関数を使用して、別の文字列内で C スタイルの文字列が最初に出現する位置へのポインタを返します。
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");