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 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" | ");
   /*
   result:
   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, Use of a Codepage