関数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
コードページ