{
char buff[256]={0};
char *ps1,*ps2;
ps1=(char *)rmchars;
while(*ps1)
buff[*ps1++]=1;//遍歷rmchars,將要刪除的字符對應在buff中的位置1
ps2=str;
while(*ps2)//遍歷str,將要刪除的字符置為1
{
if(1==buff[*ps2])
*ps2=1;
ps2++;
}
ps1=str;
ps2=str;
while(0!=*ps1)//調整str中字符位置,刪除所有置為1的位
{
if(1!=*ps1)
{
ps1++;
continue;
}
ps2=ps1+1;
while(0!=*ps2 && 1==*ps2)
ps2++;
if(0==*ps2)
break;
*ps1++=*ps2;
*ps2=1;
}
*ps1=0;
return str;
}
壹樓的:
只能刪除第壹個字符,而且後面的寫法是錯誤的。
二樓的:
沒有釋放內存,也是只能刪除相同的壹個字符。