📄 h3.c
字号:
/////////////////////Mex头文件////////////////////////////////////////////
#include "mex.h"
#include "String.h"
////////////////////用户C程序 /////////////////////////////////////////////
void reword(FILE* fp1,char *rP_buf,char *lP_buf,int buf,int ii)
{int i;
fprintf(fp1,"\n The %d Input String is: %s\n",ii,rP_buf);
for(i=0;i<buf-1;i++){*(lP_buf+i)=*(rP_buf+buf-i-2);}
fprintf(fp1,"\n The %d Output String is: %s\n",ii,lP_buf);
}
////////////////// 接口程序mexFunction/////////////////////////////////////
void mexFunction(int nlhs,mxArray *plhs[],int nrhs, mxArray *prhs[])
{int i,j,buf;
char *rP_buf,*lP_buf;
FILE *fp1;
if((fp1=fopen("OutPut3.txt","w"))==NULL){mexErrMsgTxt(" Can't open OutPutfile\n");}
nlhs=nrhs;
for(i=0;i<nrhs;i++){
if(mxIsChar(prhs[i])!=1)mexErrMsgTxt("Input must be a string");//参数检查
buf=(mxGetM(prhs[i])*mxGetN(prhs[i]))+1;///获取每一个输入参数对应的字符串大小,
///由于CString 以NULL结束,故加1
rP_buf=mxCalloc(buf,sizeof(char)); //////Matlab内存管理机制
lP_buf=mxCalloc(buf,sizeof(char)); //////Matlab内存管理机制
if(mxGetString(prhs[i],rP_buf,buf)==1) //由prhs[i]中获取输入参数
mexWarnMsgTxt("Not enough space.String is truncated");
reword(fp1,rP_buf,lP_buf,buf,i); ////调用C程序
plhs[i]=mxCreateString(lP_buf); //plhs[i]地址赋初值
mxFree(rP_buf); ///Matlab内存管理机制
mxFree(lP_buf);
}
fclose(fp1);
}
////////////////结束////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -