mxGetString (C および Fortran)
mxChar
配列から C スタイル文字列または Fortran character
の配列へ
C 構文
#include "matrix.h" int mxGetString(const mxArray *pm, char *str, mwSize strlen);
Fortran 構文
#include "fintrf.h" integer*4 mxGetString(pm, str, strlen) mwPointer pm character*(*) str mwSize strlen
引数
pm
mxChar
配列へのポインター。str
開始位置。
mxGetString
は、文字データをstr
に書き込んだ後、C ではNULL
文字でその文字列を終了します (C 文字列の要領)。str
は、動的または静的なメモリを指すことができます。strlen
str
が指す格納先バッファーのバイト単位のサイズ。一般的に C では、strlen
はpm
が指すmxArray
内の要素数に1
を足したものに設定します。要素数を取得するには、mxGetM
またはmxGetN
を使用します。マルチバイトにエンコードされた文字では使用しないでください。
戻り値
成功した場合または strlen
== 0
の場合は 0
、失敗した場合は 1
。失敗の原因としては、以下が考えられます。
mxArray
がmxChar
配列でない。strlen
がmxArray
全体を格納するのに十分な大きさでない。この場合は関数により1
が返され、文字列が切り捨てられます。
説明
mxGetString
を呼び出して、mxArray
の文字データを C では C スタイル文字列に、Fortran では配列 character
にコピーします。コピーされたデータは str
で始まり、文字数は C では strlen-1
以下 (Fortran では strlen
以下) です。C では、C スタイル文字列は必ず NULL
文字で終了します。
配列に複数の行がある場合、この関数はこれらの行を 1 つの配列に 1 列ずつコピーします。
マルチバイトにエンコードされた文字
この関数は、1 バイト エンコード スキームで表される文字のみに使用します。マルチバイト エンコード スキームで表される文字には、C 関数 mxArrayToString
を使用します。Fortran アプリケーションでは、返される文字列に十分なスペースを割り当てて、文字列が切り捨てられないようにしなければなりません。
例
の次の例を参照してください。matlabroot
/extern/examples/mx
の次の例を参照してください。matlabroot
/extern/examples/mex
の次の例を参照してください。matlabroot
/extern/examples/refbook
バージョン履歴
R2006a より前に導入