Main Content

文字列引数の受け渡し例

関数 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,
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'

関連するトピック