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

codepage=CP_ACP

[in]  Значение кодовой страницы. Для наиболее употребимых кодовых страниц предусмотрены соответствующие константы.

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

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

Пример:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- string to convert
   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" | ");
   /*
   результат:
   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, Использование кодовой страницы