其题如图所示,具体思路在于,需要找到空格,然后反转单词,再继续循环查找,进行反转
char* reverseWords(char* s)
{
int length = strlen(s);//迭代条件
int i = 0;
while (i < length)
{
int start = i;
while (i < length && s[i] != ' ') //查找空格阶段
{
i++;
}
int left = start, right = i - 1;
while (left < right)//反转阶段
{
char tmp = s[left];
s[left] = s[right], s[right] = tmp;
left++;
right--;
}
while (i < length && s[i] == ' ') //跳过空格阶段
{
i++;
}
}
return s;
}