题解 | #句子逆序#
句子逆序
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;
}
