菜鸟求教c语言
void SD (char *p1)
{
char *p2;
while (*p1 != '\0' )
{
if (*p1 == ' ')
{
p2 = p1;
while(*p2 != '\0')
{
*p2 = *(p2+1);
p2++;
}
p1--; //抵消下面的p1++
}
p1++;
}
}
这是一个自定义函数,去除字符串中的空格,但是我看不懂p2存在的意义,还有p1为什么要进行 -- 再 ++,那当*p1为空格时候,*p1也没有赋值为*(p1+1),只是p2中的那个地址的空格被丢弃,然后p1--退回一个地址,再++前进一个地址,*p1岂不是一直为空格?