StringToCharArray
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(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, " | ");
/*
result:
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
*/
}