#include <string>
using namespace std ;
//实现方法1
bool InverseWord(const string& strSrc,string& strTarget)
{
strTarget.clear();
if(!strSrc.empty())
{
strTarget.resize(strSrc.size());
int j = (int)strSrc.size()-1;
for(int i = 0;i<(int)strSrc.size();++i)
{
unsigned char t_char = strSrc[i];
if (t_char<=0x80)
{
strTarget[j--] = strSrc[i];
}
else
{
strTarget[j--] = strSrc[i+1];
strTarget[j--] = strSrc[i];
++i;
}
}
return true;
}
else
{
return false;
}
}
//实现方法2
char *Inverse(const char* pSrc)
{
int len = strlen(pSrc);
if(len)
{
char* pTarget = new char[len+1];
strcpy_s(pTarget,len+1,"/0");
unsigned char * p1 = (unsigned char *)pSrc;
char * p2 = pTarget+len;
*p2-- ='/0';
for(int i=0; i<len;i++)
{
if(*p1<=0x80)
{
*p2-- = *p1++;
}
else
{
*p2 --= p1[1];
*p2 --= *p1;
p1 += 2;
i++;
}
}
return pTarget;
}
else
{
return NULL;
}
}