C语言编程 自定义从字符串中删除指定的字符函数

2020-09-18 游戏 215阅读
char* remove_chars(char *str,const char *rmchars)//删除str中所有包含在rmchars中的字符
{
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;

}
一楼的:
只能删除第一个字符,而且后面的写法是错误的。
二楼的:
没有释放内存,也是只能删除相同的一个字符。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com