文字列引数の受け渡し例
関数 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'