文字列引数の受け渡し例
関数 stringToUpper
shrlibsample
ライブラリの関数 stringToUpper
は、入力引数の文字を大文字に変換します。入力パラメーター char *
は、文字列に対する C ポインターです。
EXPORTED_FUNCTION char* stringToUpper(char *input) { char *p = input; if (p != NULL) while (*p!=0) *p++ = toupper(*p); return input; }
stringToUpper
の関数シグネチャは次の表に示されています。MATLAB® は、MATLAB 文字配列を関数に渡すことができるよう、C ポインター型 (char *
) を cstring
にマップします。
戻り値の型 | 名前 | 引数 |
---|---|---|
[cstring, | stringToUpper | (cstring) |
MATLAB 文字配列の大文字への変換
この例では、MATLAB 文字配列 str
を C 関数 stringToUpper
に渡す方法を説明します。
str = 'This was a Mixed Case string';
関数 stringToUpper
を含むライブラリを読み込みます。
if not(libisloaded('shrlibsample')) addpath(fullfile(matlabroot,'extern','examples','shrlib')) loadlibrary('shrlibsample') end
str
を関数に渡します。
res = calllib('shrlibsample','stringToUpper',str)
res = 'THIS WAS A MIXED CASE STRING'
入力パラメーターは、char
型を指すポインターです。しかし、MATLAB 文字配列はポインターではないため、関数 stringToUpper
によって入力引数 str
は変更されません。
str
str = 'This was a Mixed Case string'