题解 | #句子逆序#
句子逆序
https://www.nowcoder.com/practice/48b3cb4e3c694d9da5526e6255bb73c3
#include <stdio.h> #include <string.h> void reverse(char* start, char* end) { char m; while (start < end) { m = *end; *end = *start; *start = m; end--; start++; } } void WoldReverse(char* s, int s_len) { int sat = 0; for (int i = 0; i <= s_len; i++) { while ((s[i] == ' ') || (s[i] == '\0')) { reverse(s + sat, s + i - 1); sat = i + 1; break; } } } int main() { char arr[1000]; fgets(arr, sizeof(arr), stdin); int len = strlen(arr) - 1; arr[len] = '\0'; WoldReverse(arr, len); reverse(arr, arr + len - 1); printf("%s", arr); return 0; }