Массив mxChar
к строке C-стиля или Фортрану массив character
#include "matrix.h" int mxGetString(const mxArray *pm, char *str, mwSize strlen);
#include "fintrf.h" integer*4 mxGetString(pm, str, strlen) mwPointer pm character*(*) str mwSize strlen
\pm
Указатель на массив mxChar
.
str
Стартовое местоположение. mxGetString
пишет символьные данные в str
и затем, в C, отключает строку с символом NULL
(способом струн до). str
может указать или на динамическую память или на статическое ЗУ.
strlen
На размер в байтах целевого буфера указывает str
. Как правило, в C, вы устанавливаете strlen
на 1
плюс число элементов в mxArray
, на который указывает pm
. Чтобы получить число элементов, используйте mxGetM
или mxGetN
.
Не используйте с Многобайтовыми Закодированными Символами.
0
на успехе или если strlen
== 0
и 1
на отказе. Возможные причины для отказа включают:
mxArray
не является массивом mxChar
.
strlen
не является достаточно большим, чтобы сохранить целый mxArray
. Если так, затем функция возвращает 1
и обрезает строку.
Вызовите mxGetString
, чтобы скопировать символьные данные mxArray
в строку C-стиля в C или массив character
на Фортране. Скопированные данные запускаются в str
и содержат не больше, чем символы strlen-1
в C (не больше, чем символы strlen
на Фортране). В C строка C-стиля всегда отключается с символом NULL
.
Если массив содержит несколько строк, то функция копирует их в единый массив, один столбец за один раз.
Используйте эту функцию только с символами, представленными в однобайтовых схемах кодирования. Для символов, представленных в многобайтовых схемах кодирования, используйте функцию C mxArrayToString
. Приложения Фортрана должны выделить достаточное место для возвращаемой строки, чтобы избежать возможного усечения.
См. следующие примеры в matlabroot / extern / examples / mx.
См. следующие примеры в matlabroot /extern/examples/mex.
См. следующие примеры в matlabroot / extern / examples / refbook.
mxArrayToString
, mxCreateCharArray
, mxCreateCharMatrixFromStrings
, mxCreateString
, mxGetChars