Main Content

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 では、strlenpm が指す mxArray 内の要素数に 1 を足したものに設定します。要素数を取得するには、mxGetM または mxGetN を使用します。

マルチバイトにエンコードされた文字では使用しないでください。

戻り値

成功した場合または strlen == 0 の場合は 0、失敗した場合は 1。失敗の原因としては、以下が考えられます。

  • mxArraymxChar 配列でない。

  • strlenmxArray 全体を格納するのに十分な大きさでない。この場合は関数により 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 より前に導入