📄 revord.c
字号:
#include "mex.h"
void revord(char *input_buf, mwSize buflen, char *output_buf)
{
mwSize i;
if (buflen == 0) return;
/* 反转输入字符串 */
for(i=0;i<buflen-1;i++)
*(output_buf+i) = *(input_buf+buflen-i-2);
}
void mexFunction( int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
{
char *input_buf, *output_buf;
mwSize buflen;
/* 检查参数个数的合法性 */
if(nrhs!=1)
mexErrMsgTxt("One input required.");
else if(nlhs > 1)
mexErrMsgTxt("Too many output arguments.");
/* 输入参数必须为字符串*/
if ( mxIsChar(prhs[0]) != 1)
mexErrMsgTxt("Input must be a string.");
/* 输入参数必须为行向量 */
if (mxGetM(prhs[0])!=1)
mexErrMsgTxt("Input must be a row vector.");
/* 获取输入字符串的长度 */
buflen = (mxGetM(prhs[0]) * mxGetN(prhs[0])) + 1;
/* 为输出字符串分配内存 */
output_buf=mxCalloc(buflen, sizeof(char));
/* 将输入的MATLAB类型的字符串转换为C语言类型的字符串变量,
并赋值给input_ buf */
input_buf = mxArrayToString(prhs[0]);
if(input_buf == NULL)
mexErrMsgTxt("Could not convert input to string.");
/* 调用子程序 */
revord(input_buf, buflen, output_buf);
/* 最后将C语言类型的字符串output_buf转换为MATLAB类型的字符串,并赋值给mexFunction
的输出参数plhs*/
plhs[0] = mxCreateString(output_buf);
mxFree(input_buf);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -