mxGetString (C and Fortran)

mxChar массив в строку стиля C или character ФОРТРАН массив

Синтаксис C

#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 символ (в порядке строк C). 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:

Представлено до R2006a