题解 | #逆序输出#
逆序输出
https://www.nowcoder.com/practice/bb66c27cb7aa48f9ba7d9f88e4068285?tpId=290&tqId=352865&ru=/exam/oj&qru=/ta/beginner-programmers/question-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E8%25AF%25AD%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D290
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <assert.h>
void my_reverse(char* left , char* right)
{
assert(left);
assert(right);
while (left < right)
{
*left ^= *right;
*right ^= *left;
*left++ ^= *right--;
}
}
int main()
{
char arr[100] = { 0 };
gets(arr);
int len = strlen(arr);
my_reverse(arr, arr + len - 1);
char* start = arr;
char* end = start;
while (1)
{
while (*end != ' ' && *end != '\0')
{
end++;
}
my_reverse(start, end-1);
if (*end != '\0')
{
end++;
start = end;
}
else break;
}
printf("%s", arr);
return 0;
}
