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
引数
pmmxChar配列へのポインター。str開始位置。
mxGetStringは、文字データをstrに書き込んだ後、C ではNULL文字でその文字列を終了します (C 文字列の要領)。strは、動的または静的なメモリを指すことができます。strlenstrが指す格納先バッファーのバイト単位のサイズ。一般的に 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 アプリケーションでは、返される文字列に十分なスペースを割り当てて、文字列が切り捨てられないようにしなければなりません。
例
例を開くには、次のように入力します。
edit([fullfile(matlabroot,"extern","examples","mx","filename")]);
ここで filename は、次のようになります。
例を開くには、次のように入力します。
edit([fullfile(matlabroot,"extern","examples","mex","filename")]);
ここで filename は、次のようになります。
例を開くには、次のように入力します。
edit([fullfile(matlabroot,"extern","examples","refbook","filename")]);
ここで filename は、次のようになります。
バージョン履歴
R2006a より前に導入