#include<assert.h>
void Swap(char*start,char*end)
{
while (start < end)
{
*start ^= *end;
*end ^= *start;
*start ^= *end;
start++;
end--;
}
}
void reverse(char *start, char*end)
{
/*while (start < end)
{
char*tmp = *start;
*start = *end;
*end = tmp;
start++;
end--;
}*/
Swap(start,end);
}
char*next_reverse(char*str)
{
assert(str);
char*start = str;
char*end = str;
while (*end != '\0')
{
while ((*end != ' ') && (*end != '\0'))
{
end++;
}
reverse(start, end-1);
if (*end == '\0')
break;
end += 1;
start = end;
}
return str;
}
int main()
{
char ret[] = "student a am i";
reverse(ret, ret + strlen(ret) - 1);
char* ret2 = next_reverse(ret);
printf("%s\n",ret2);
system("pause");
}