一个c语言编程题,从字符串中删除特定字符

2024-11-15 17:23:51
推荐回答(2个)
回答1:

你的代码中 *(--s)=*(++s);这句有问题,这句执行顺序是先执行两边的自加和自减操作,最后再执行赋值,所以实际上是把自己的值赋给了自己,所以字符串毫无变化,改成*(s) = *(s+1);就好了,其他语句不用动。

回答2:

#include  

void delchar(char *str,char c)
{
char *s;
int i=0;
while (*str)
{
if (*str==c)
{
s=str;
do 
{
*(s+i)=*(s+i+1);
i++;
}while(*(s+i));
break;
}
str++;
}
}


main()
{
char str[]="1234567890";
char ch = '3';
delchar(str,ch);
printf("%s\n",str);
}

124567890
Press any key to continue