⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 revord.c

📁 matlab实用教程
💻 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 + -