题目
解决方法
三步倒置法:
第一步:字符串整体翻转
.gnijieb ekil I
第二步:每个单词逆序
beijing. like I
void Reverse(char* left, char* right)
{
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
int main()
{
char arr[255] = { 0 };
gets(arr);
int len = strlen(arr);
Reverse(arr, arr + len - 1);//逆序整个字符串
//每个单词逆序
char* start = arr;//arr存入start中
while (*start)
{
char* end = start;
while (*end != ' ' && *end != '\0')
{
end++;//寻找不到则end往下加
}
Reverse(start, end - 1);
if (*end == ' ')
{
start = end + 1;//end指向空格时下一个循环的start跳过空格开始寻找空格或0
}
else
{
start = end;//end为0时start被赋值为end即为0下一步就结束循环
}
}
puts(arr);
return 0;
}