char* removeSuccessTwoZero(char *Array)
{
char *pCur;
char *pCopy;
int iZeroNum = 0;
pCur = pCopy = Array;
while(*pCur != '\0')
{
if (*pCur == '0')
{
++iZeroNum;
}
else
{
if (iZeroNum != 0)
{
if (iZeroNum != 2)
{
for (int idx = 0; idx < iZeroNum; idx++)
{
*pCopy++ = '0';
}
}
iZeroNum = 0;
}
*pCopy++ = *pCur;
}
pCur++;
}
*pCopy = '\0';
return Array;
}
更巧妙的做法:
void remove2zeros(char *str)
{
int flag = 0;
char *p,*base;
p= base= str;
while(*p!='\0')
{
if(*p=='0')
flag++;
else
{
if(flag==2)
{
base-=2;
}
flag=0;
}
*base++ =*p++;
}
*base='\0';
return;
}