把 1234567890 转成 2143658709 toswap(CString indata)
{
CString tmpin[200];
CString szout;
int len = 0;
len = indata.GetLength();
for (int i = 0; i<len; i++)
{
tmpin[i]=indata.Mid(i,1);
}
//indata.MakeReverse();
for (int j =0;j<len; j+=2)
{
szout = szout + tmpin[j+1] + tmpin[j];
}
return szout;
}有办法优化么
{
CString tmpin[200];
CString szout;
int len = 0;
len = indata.GetLength();
for (int i = 0; i<len; i++)
{
tmpin[i]=indata.Mid(i,1);
}
//indata.MakeReverse();
for (int j =0;j<len; j+=2)
{
szout = szout + tmpin[j+1] + tmpin[j];
}
return szout;
}有办法优化么
{
int nLen = indata.GetLength();
LPCTSTR lpStr = indata.GetBuffer(0);
for (int i = 1; i < nLen; i+=2)
{
TCHAR c = lpStr[i];
lpStr[i] = lpStr[i-1];
lpStr[i-1] = c;
}
indata.ReleaseBuffer();
}
CString toswap(CString inData)
{
int nLen = inData.GetLength();
if(nLen < 2)//不足2个字符,不交换
return "";
char *pData = inData.GetBuffer(nLen);
for(int i=0; i<nLen-1; i+=2)
{
char chTemp = *(pData+i);
*(pData+i) = *(pData+i+1);
*(pData+i+1) = chTemp;
}
inData.ReleaseBuffer();
return inData;
}