2019年5月8日水曜日
[MQL4] StringToCharArray() を使うと最後に '\0' が入るので注意
公式リファレンスにちゃんと書いてあるのですが、 [StringToCharArray()](https://docs.mql4.com/convert/stringtochararray) を使うと最後に '\0' '\0' を入れないようにするには、以下のように文字列長分変換すると良いようです。 ```mq4 `first-line: 3; StringToCharArray(hoge, arr_hoge, 0, StringLen(hoge)); // arr_hoge は ['a', 'b', 'c'] Print(ArraySize(arr_hoge)); // 3 ```が入ります。 ```mq4 string hoge = "abc"; uchar arr_hoge[]; StringToCharArray(hoge, arr_hoge); // arr_hoge は ['a', 'b', 'c', '\0'] Print(ArraySize(arr_hoge)); // 4 ``` [ArraySize()](https://docs.mql4.com/array/arraysize) を [StringLen()](https://docs.mql4.com/strings/stringlen) のように使ったりすると不具合の原因になるので気をつけましょう 。