【MQL5】StringInit関数について

MQL5リファレンス
スポンサーリンク
スポンサーリンク

StringInit関数の働き・役割

StringInit関数は、指定した文字列を一定の長さに初期化するために使用されます。

この関数を使用することで、特定の長さの文字列を作成し、必要に応じてその文字列を特定の文字で埋めることができます。これは、データを整形したり、特定の形式で出力する場合に非常に便利です。

StringInit関数の引数について

//+------------------------------------------------------------------+
//| StringInit関数の定義                                             |
//+------------------------------------------------------------------+
//
// 関数名   : StringInit
// 概要     : 指定した文字列を一定の長さに初期化します
// 引数     :
//   string str   - 初期化する元の文字列
//   int length   - 目標とする文字列の長さ
//   ushort char  - (オプション) 元の文字列を埋めるための文字
// 戻り値   : 初期化された文字列(string型)
//

StringInit関数は以下の引数を取ります:

  1. str – 初期化する元の文字列。この文字列関数の処理によって、変更されます。
  2. length – 目標とする文字列の長さ。指定した長さにするために、元の文字列が短い場合はcharで埋められます。
  3. 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関数

タイトルとURLをコピーしました