StringToCharArray

Unicode から ANSI に変換された文字列をシンボルごとに uchar 型の配列の指定された一部に複製します。複製された要素の数が返されます。

int  StringToCharArray(
  string  text_string,        // ソースの文字列
  uchar& array[],            // 配列
  int    start=0,            // 配列でのコピー開始位置
  int    count=-1            // シンボル数
  uint    codepage=CP_ACP      // コードページ
  );

パラメータ

text_string

[in]  複製する文字列

array[]

[out]  uchar 型の配列

start=0

[in]  コピー開始位置。デフォルトでは 0。

count=-1

[in]  複製する配列要素数。結果の文字列の長さを定義します。初期値は、配列の最後または終了する 0まで複製することを意味する -1 です。文字列を終了する 0 は受け取り側の配列に複製され、動的配列のサイズは文字列のサイズに応じて増加出来ます。動的配列のサイズはが文字列の長さを超える場合は、配列のサイズは縮小されません。

codepage=CP_ACP

[in]  コードページの値。よく使用される コードページ では定数が提供されています。

戻り値

複製された要素の数

 

例:

//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                              |
//+------------------------------------------------------------------+
void OnStart()
 {
//--- 変換する文字列
  string text = "This is a test of the StringToCharArray() function";
 
//--- 設定されたコードページに従って入力文字列をuchar配列に変換する
  uchar char_array[];
  int   copied=StringToCharArray(text, char_array);
  PrintFormat("String length: %u\nNumber of characters copied (with terminal 0): %d\nArray of characters for the string '%s':",
              StringLen(text), copied, text);
//--- 結果の配列を操作ログに出力する
  ArrayPrint(char_array, 0, " | ");
  /*
  結果:
  String length: 50
  Number of characters copied (with terminal 0): 51
  Array of characters for the string 'This is a test of the StringToCharArray() function':
  [ 0] 84 | 104 | 105 | 115 | 32 | 105 | 115 | 32 | 97 | 32 | 116 | 101 | 115 | 116 | 32 | 111 | 102
  [17] 32 | 116 | 104 | 101 | 32 | 83 | 116 | 114 | 105 | 110 | 103 | 84 | 111 | 67 | 104 | 97 | 114
  [34] 65 | 114 | 114 | 97 | 121 | 40 | 41 | 32 | 102 | 117 | 110 | 99 | 116 | 105 | 111 | 110 |   0
  */
 }

参照

CharArrayToString StringToShortArrayコードページの利用