StringToShortArray

Посимвольно копирует строку в указанное место массива типа ushort. Функция возвращает количество скопированных элементов.

int  StringToShortArray(
   string  text_string,     // строка-источник
   ushort& array[],         // массив
   int     start=0,         // начальная позиция в массиве
   int     count=-1         // количество символов
   );

Параметры

text_string

[in]  Строка для копирования.

array[]

[out]  Массив типа ushort (аналог типа wchar_t).

start=0

[in]  Позиция, с которой начинается копирование. По умолчанию 0.

count=-1

[in]  Количество элементов массива для копирования. Определяет длину результатной строки. По умолчанию -1, что означает копирование до конца массива, либо до встречи терминального 0. Терминальный 0 также будет скопирован в массив-приемник, при этом размер динамического массива может быть увеличен при необходимости под размер строки. Если размер динамического массива больше длины строки, то размер массива уменьшен не будет.

Возвращаемое значение

Количество скопированных элементов.

Пример:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- string with chars to convert
   string text = "Chars: ❤♫☎✈✣☏☀✉☆☁♕♠®✧❆♣   ";
   ushort short_array[];
//--- найдём во входной строке позицию символа ":" и извлечём подстроку, начиная со следующего символа
   int    pos=StringFind(text":");
   string str=(pos<0 ? text : StringSubstr(textpos+1));
//--- удалим из полученной строки слева и справа символы перевода каретки, пробелы и символы табуляции
   StringTrimLeft(str);
   StringTrimRight(str);
//--- скопируем полученную строку в ushort-массив и распечатаем в журнал полученный массив
   int copied=StringToShortArray(strshort_array);
   PrintFormat("String of characters length: %u\n"
               "Number of characters copied (with terminal 0): %d\n"
               "Array of chars for the string '%s':",
               StringLen(str), copiedstr);
   ArrayPrint(short_array0" | ");
   /*
   результат:
   String of characters length16
   Number of characters copied (with terminal 0): 17
   Array of chars for the string '❤♫☎✈✣☏☀✉☆☁♕♠®✧❆♣':
   10084 |  9835 |  9742 |  9992 | 10019 |  9743 |  9728 |  9993 |  9734 |  9729 |  9813 |  9824 |   174 | 10023 | 10054 |  9827 |     0
   */
  }

Смотри также

ShortArrayToString, StringToCharArray, Использование кодовой страницы