文字列をushort型配列へコピー StringToShortArray 関数

関数

変換関数

StringToShortArray 関数

 この関数は、文字列を ushort型配列の指定した場所にコピーします。そしてコピーした要素数が取得されます。

 ushort型の配列には Unicodeに対応した 10進数のコードが格納されることになります。

データ型と構成・戻り値

int StringToShortArray(①,②,③,④);

 戻り値は、コピーした要素数を返します。

引数 [4]

 StringToShortArray関数は 4個の引数で構成されます。


引数名データ型単位初期値説明
text_stringstringコピー元の文字列。
array[]uchar&コピー先の配列(ushort型)。
startint0コピーを開始する位置。最初の値は 0からです。
countint-1コピーする配列要素の数。
-1を設定すると③の開始位置から配列の終わりまでが対象になります。
※初期値があるものは省略可。但し、省略した引数以降は省略しなければなりません。

使用例

StringToShortArray関数を使った ushort型配列へのコピー

 コピー元の文字列を StringToShortArray関数でコピーして ushort型の配列に格納します。そして、その時にコピーした要素数(文字列数)と ushort型の配列に格納したコードを出力します。

コード

// StringToShortArray関数を使った ushort型配列へのコピー
#property strict
void OnInit() {
   string str1 = "ユニコード";            // コピー元の文字列
   string str2;                           // コピー先の文字列
   ushort arr[];                          // コピー先の配列
   int e, i;
   
   e = StringToShortArray(str1, arr);     // コピーした要素数+配列へコピー
   
   str2 = (string)arr[0];
   for(i=1; i<e; i++) {
      str2 = str2 + ", " + (string)arr[i];
   } 
   
   Print("コピー要素数:", e);
   Print("arr[", e, "]={ ", str2, " }");  // コピー先の配列状態
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

 結果は Unicodeに対応した 10進数の値がコピー先の配列に格納されます。この逆の処理を ShortArrayToString関数のページで行なっていますので参考にしてください。

※コピー元の文字数が「ユニコード」の 5文字なので要素数が 5になるはずなのですが、何故か 6になります。文字 または 配列の最後に 0(NUL)が入るようです。

タイトルとURLをコピーしました