dog loves pig. --------> pig loves dog.
看到这种反转,我们可以想到的是先来个整体反转-----> gip sevol god 再来个局部反转-----> pig loves dog,最终会得到我们所要的结果。
话不多说 上代码。
#include<stdio.h>
char* reverse(char *s,int len)
{
char *phead = s;
char *ptail = &s[len-1];
while(phead != ptail)
{
swap(*phead,*ptail);
phead++;
ptail--;
}
return s;
}
int main()
{
char s[]="dog loves pig";
int lens = strlen(s);
reverse(s,lens);
char *phead = s;
char *ps = s;
while(*phead != '\0')
{
while(*phead!=' '&& *phead!='\0')
phead++;
char *pphead = phead;
phead--;
while(ps!=phead)
{
swap(*ps,*phead);
ps++;
phead--;
}
if(*pphead != '\0')
{
phead = pphead++;
ps = ++phead;
}
else
phead = pphead;
}
printf("%s\n",s);
return 0;
}