StringInit関数の働き・役割
StringInit関数は、指定した文字列を一定の長さに初期化するために使用されます。
この関数を使用することで、特定の長さの文字列を作成し、必要に応じてその文字列を特定の文字で埋めることができます。これは、データを整形したり、特定の形式で出力する場合に非常に便利です。
StringInit関数の引数について
//+------------------------------------------------------------------+
//| StringInit関数の定義 |
//+------------------------------------------------------------------+
//
// 関数名 : StringInit
// 概要 : 指定した文字列を一定の長さに初期化します
// 引数 :
// string str - 初期化する元の文字列
// int length - 目標とする文字列の長さ
// ushort char - (オプション) 元の文字列を埋めるための文字
// 戻り値 : 初期化された文字列(string型)
//
StringInit関数は以下の引数を取ります:
- str – 初期化する元の文字列。この文字列は関数の処理によって、変更されます。
- length – 目標とする文字列の長さ。指定した長さにするために、元の文字列が短い場合はcharで埋められます。
- char – (オプション)元の文字列を埋めるための文字。この引数を指定しない場合、デフォルトで空白文字(スペース)が使用されます。
例:StringInit("example", 10, '*')
という呼び出しは、「example」という元の文字列を10文字の長さに初期化し、足りない部分をアスタリスク(*)で埋めます。
StringInit関数の戻り値について
StringInit関数は、初期化された文字列を返します。戻り値はstring型です。元の文字列が指定した長さに満たない場合、指定された文字で埋められた新しい文字列が返されます。
StringInit関数を使う際の注意点
- length引数が元の文字列の長さよりも短い場合、元の文字列は切り詰められます。
- char引数を指定しない場合、デフォルトでスペースが埋め文字として使用されることを忘れないでください。
- unicode文字を使用する場合、1文字が複数バイトになることがあるため、結果の長さが意図したものと異なる場合があります。
※unicodeについての詳細は↓の記事をご参照ください
StringInit関数を使ったサンプルコード
以下に、StringInit関数を使用したサンプルコードを示します。このコードは、元の文字列を特定の長さに初期化し、結果をエキスパートログに出力します。
void OnStart()
{
// 初期化する元の文字列
string original = "MQL5";
// 文字列を10文字の長さに初期化し、'*'で埋めます
string initializedString = StringInit(original, 10, '*');
// 初期化された文字列をエキスパートログに出力します
Print("初期化された文字列: ", initializedString);
}
このサンプルコードの出力結果は以下の通りです:
初期化された文字列: MQL5******
サンプルコードに使われた関数や文法要素の簡単な解説
- OnStart関数: スクリプトが実行されるときに自動的に呼び出される関数です。
- StringInit関数: 指定された長さに文字列を初期化し、必要に応じて指定された文字で埋めます。
- Print: エキスパートログにメッセージを出力するために使用されます。
<参照>
StringAdd関数/StringBufferLen関数/StringCompare関数/StringLen関数/StringConcatenate関数/StringFill関数/StringFind関数/StringGetCharacter関数/StringSetLength関数/StringReplace関数/StringReserve関数/StringSetCharacter関数/StringSplit関数/StringSubstr関数/StringToLower関数/StringToUpper関数/StringTrimLeft関数/StringTrimRight関数