関数StringToCharArray()の使い方
文字列をchar型の配列にコピーします。
関連記事一覧:WebRequest(),WEBREQUEST()を使うときの注意点
書式
int StringToCharArray( string text_string, // コピー元の文字列 uchar &array[], // コピー先配列 ※参照渡し int start = 0, // コピー開始する配列インデックス int count = -1, // コピーする文字数 uint codepage = CP_ACP // コードページ );
戻り値
char型配列の要素数を返します。
サンプルコード
string str = "abc";
string str_JP = "あ";
uchar char_array[];
//
Print("CP_ACP:戻り値:",StringToCharArray(str,char_array,0,2));
for(int i=0;i < StringToCharArray(str,char_array,0,2);i++){
Print("文字列:abc;スタート位置(index):0;コピー文字数:2;CP_ACP:",char_array[i]);
}
/*
[0]:97
[1]:98
StringToCharArray()の戻り値は:2
*/
Print("CP_ACP:戻り値:",StringToCharArray(str,char_array,1,2));
for(int i=0;i < StringToCharArray(str,char_array,1,2);i++){
Print("文字列:abc;スタート位置(index):1;コピー文字数:2;CP_ACP:",char_array[i]);
}
/*
[0]:97
[1]:97
StringToCharArray()の戻り値は:2
*/
Print("CP_ACP:戻り値:",StringToCharArray(str,char_array,2,1));
for(int i=0;i < StringToCharArray(str,char_array,2,1);i++){
Print("文字列:abc;スタート位置(index):2;コピー文字数:1;CP_ACP:",char_array[i]);
}
/*
[0]:97
StringToCharArray()の戻り値は:1
*/
//str_JP = abc ACP 宣言時に初期化しているものは省略可能
/*
StringToCharArray(str,char_array);
と
StringToCharArray(str_JP,char_array,0,-1,CP_ACP);
は同じです。
*/
Print("CP_ACP:戻り値:",StringToCharArray(str,char_array));
for(int i=0;i < StringToCharArray(str,char_array);i++){
Print("文字列:abc;","配列index:",i,";CP_ACP:",char_array[i]);
}
/*
[0]:97
[1]:98
[2]:99
[3]:0
StringToCharArray()の戻り値は:4
*/
//str = abc UTF8
Print("CP_UTF8:戻り値:",StringToCharArray(str,char_array,0,-1,CP_UTF8));
for(int i=0;i < StringToCharArray(str,char_array,0,-1,CP_UTF8);i++){
Print("文字列:abc;","配列index:",i,";CP_UTF8:",char_array[i]);
}
/*
[0]:97
[1]:98
[2]:99
[3]:0
StringToCharArray()の戻り値は:4
*/
//str_JP = あ ACP 宣言時に初期化しているものは省略可能
Print("CP_ACP:戻り値:",StringToCharArray(str_JP,char_array));
for(int i=0;i < StringToCharArray(str_JP,char_array);i++){
Print("文字列:あ;","配列index:",i,";CP_ACP:",char_array[i]);
}
/*
[0]:130
[1]:160
[2]:0
StringToCharArray()の戻り値は:3
*/
//str_JP = あ UTF8
Print("CP_UTF8:戻り値:",StringToCharArray(str_JP,char_array,0,-1,CP_UTF8));
for(int i=0;i < StringToCharArray(str_JP,char_array,0,-1,CP_UTF8);i++){
Print("文字列:あ;","配列index:",i,";CP_UTF8:",char_array[i]);
}
/*
[0]:227
[1]:129
[2]:130
[3]:0
StringToCharArray()の戻り値は:4
*/

代表的なコードページ一覧
- CP_ACP 0 現在のWindows ANSIコードページ。
- CP_OEMCP 1 現在のシステムOEMコードページ。
- CP_MACCP 2 現在のシステムのMacintoshコードページ。※1
- CP_THREAD_ACP 3 現在のスレッドのWindows ANSIコードページ。
- CP_SYMBOL 42 シンボルコードページ
- CP_UTF7 65000 UTF-7コードページ。
- CP_UTF8 65001 UTF-8コードページ。
※1注: 最近のMacintoshコンピューターはエンコードにUnicodeを使用するため、この値は以前に作成されたプログラムコードで主に使用され、現在は使用されていません。
参考元:
Using a Codepage in String Conversion Operations
2.2.1 Supported Codepage in Windows
別サイト:wikipedia
コードページ
