主要内容

字符串处理函数矩阵C API

如何MATLAB在墨西哥人代表字符串文件

在C / c++墨西哥人函数建立的矩阵C API, MATLAB®特征向量是一个mxArray类型的mxChar使用locale-neutral数据表示(Unicode®编码)。MATLAB是c风格的字符串作为类型字符指定的字符编码方案,并使用由用户语言环境设置。

下列矩阵C API函数提供字符串处理功能来帮助你工作mxArrays和C风格的字符串。

  • mxCreateString——创建一个mxCharmxArray初始化输入字符串。

  • mxArrayToString-副本mxCharmxArray c风格的字符串。金宝app支持多字节编码的字符。

  • mxGetString-副本mxCharmxArray c风格的字符串。最好使用单字节编码字符。金宝app支持多字节编码字符时计算字符串缓冲区大小。

  • mxGetChars——返回一个指针指向第一个mxCharmxArray元素。

考虑下面的主题在选择一个字符串处理函数。

字符编码和多字节编码方案

MATLAB支金宝app持字符编码方案由用户指定的区域设置。当一个MX库函数转换mxChar数据一个C字符类型,MATLAB还将字符转换为用户默认编码。

如果您使用多字节编码方案,使用mxArrayToString函数。

mxGetChars函数提供了一个指针mxChar数组;它不改变字符编码。

您还可以使用mxGetString函数与多字节编码方案。mxGetString转换mxChar数据用户默认编码,并将转换后的字符复制到目标缓冲区。但是,你必须计算目标缓冲区的大小。对于单字节编码,缓冲区的大小是字符的数量,加上1空的终结者。多字节编码的字符是一个或多个字节大小。一些选项计算缓冲区大小被高估(计算字符数倍的最大字节数所使用的编码方案),分析字符串来确定每个字符使用的精确尺寸,或利用第三方库字符串缓冲区。这个计算后,添加1空的终结者。

转换MATLAB特征向量c风格的字符串

当您传递一个字符数组,一个墨西哥人函数,这是一个mxArray类型的mxChar。如果你调用一个C函数来操作字符串,首先将数据转换成C类型字符使用mxArrayToStringmxGetString功能。

将c风格的字符串转换为MATLAB特征向量

如果你的墨西哥人文件创建一个MATLAB C字符串并返回数据,使用mxCreateString函数C字符串复制到一个mxChar数组中。

返回修改输入字符串

假设你的墨西哥人文件字符输入,修改它,并返回结果。从文件输入参数(墨西哥人prhs数组)是只读的,您必须定义一个单独的输出参数处理修改后的字符串。

内存管理

MathWorks®建议墨西哥人文件函数摧毁自己的临时数组和自由自己的动态分配的内存。函数用来释放内存取决于你如何使用字符串缓冲区函数用于创建缓冲区。

如果你调用这个函数

使用这个函数释放内存

任何字符串函数列在这里

不破坏mxArray在墨西哥人源文件时:

  • 文件传递到墨西哥人在右侧列表中prhs []

  • 在左边列表中返回plhs []

  • 返回的mexGetVariablePtr函数。

  • 用于创建一个结构。

mxArrayToString

mxFree

mxGetString

当使用mxCalloc/mxMalloc/mxRealloc创建输入参数缓冲区,叫mxFree (buf)

mxCreateString

mxDestroyArray

mxGetChars

一个也没有。创建一个指针指向一个函数mxArray但不分配额外的内存。

相关的话题