70,023
社区成员




char *fun1(char *ptr)
{
char *p,*q;
for(p=ptr;*p!='\0';p++)
{
q=p;
if(*q==' ')
{
while(*q!='\0')
{
*q=*(q+1);
q++;
}
}
}
return ptr;
}
char *fun1(char *ptr)
{
char *p,*q;
for(p=ptr;*p!='\0';)
{
q=p;
if(*q==' ')
{
while(*q!='\0')
{
*q=*(q+1);
q++;
}
}
else
p++;
}
return ptr;
}
谢谢,改了一下,这样就可以了。
另外,
将“I am from shanghai”倒置为“shanghai from am I”
我看了一下别人的代码,不太明白它的算法思想,能帮忙解释一下吗?
char *fun2(char *src)
{
char temp;
char *start = src, *end = src, *ptr = src;
while(*ptr++ != '\0')
{
if(*ptr == ' ' || *ptr == '\0')
{
end = ptr - 1;
while(start < end)
{
temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
start = end = ptr + 1;
}
}
start = src;
end = ptr - 2;
while(start < end)
{
temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
return src;
}