题解 | #逆序输出#
逆序输出
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; }