新年快乐!返回值问题
先祝大家龙年大吉!char *regcompx(const char* str)
{
smatch what;
char buf2[255];
char *pstr,*pst;
pstr=NULL;
//cpos = strrchr(lbody, '-');//在lbody中查找'-'最后一次出现的位置,最后返回指向'-'的指针
if((strrchr(str, '-')))
{
regex expression("\\w{6}-\\w{6}");//正则表达式
if(regex_search(str, what, expression))//在str中查找expression的字串 并放入到what里面
{
// bool s=regex_match(str, what, expression);
for(int i=0;i<what.size();i++)
printf(" %s\r\n", what[i].str().c_str());
//cout<<"str: " <<what[i].str()<<endl; //cout<< " "<<endl 输出并换行 endl相当于换行
int len = 0;
char key[]={0,2,0,0,9,3,5,1,9,8,0,0,9,1,7,5},buf[255]= {0};
::memset(buf, 0, sizeof(buf));//对较大的结构体或者数组(buf)进行清零操作
:: strcpy(buf, what[0].str().c_str());
Des_Go(buf, buf, 13, key, sizeof(key), ENCRYPT);
strncpy(buf2,buf,255);//将buf中最多255个字符复制到buf2中
len = ::strlen(buf);
if(len == 16)
{
CString st;
for(int i = 0; i < len; i++)
{
BYTE tmp;
CString st1;
tmp = buf[i];
st1.Format("%X%X",(tmp >> 4) & 0x0f, tmp & 0x0f);
st = st + st1;
}
pstr=(LPSTR)(LPCTSTR)st;//CString转化为char*
}
}
else
{
}
//return 0;
// pst = pstr;
}
return pstr;
}
部分代码如上,函数能够编译通过,但最后返回的pstr为乱码,请各位帮帮忙,O(∩_∩)O谢谢