StringToCharArray

交易品种复制从一个Unicode型字符串转变成ANSI,双字符型数组的选择位置,返回复制元素的数量。

int  StringToCharArray(
   string  text_string,         // 源字符串
   uchar&  array[],             // 数组
   int     start=0,             // 数组中的启动位置
   int     count=-1             // 交易品种数
   uint    codepage=CP_ACP      // 代码页
   );

参量

text_string

[in]  复制字符串型

array[]

[out]  无符字符型数组

start=0

[in]  从起始位置开始复制,默认值是0

count=-1

[in]  数组元素复制数量,定义字符串结果的长度,默认值是-1,会一直复制到数组的结尾,或者是终端0。终端0也会被接收数组复制,在此情形下,如果字符串大小需要,动态数组的大小是能增加的,如果动态数组增大到跟路线一样长,数组的体积不会减小。

codepage=CP_ACP

[in]  代码页的值,最多使用 代码页 提供适当常量

返回值

复制元素的数量

 

示例:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 要转换的字符串
   string text = "This is a test of the StringToCharArray() function";
 
//--- 根据设置的代码页将输入字符串转换为uchar数组
   uchar char_array[];
   int   copied=StringToCharArray(textchar_array);
   PrintFormat("String length: %u\nNumber of characters copied (with terminal 0): %d\nArray of characters for the string '%s':",
               StringLen(text), copiedtext);
//--- 在日志中记录结果数组
   ArrayPrint(char_array0" | ");
   /*
   result:
   String length50
   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代码页使用