- 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;
- }