string형 인수 전달하기 예제
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®은 C 포인터 유형(char *)을 cstring으로 매핑합니다. 따라서 MATLAB 문자형 배열을 함수에 전달할 수 있습니다.
| 반환 유형 | 이름 | 인수 |
|---|---|---|
[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'