C, (削除) 62 (削除ここまで) 58 bytes
Thanks to @Dennis for saving four bytes!
f(char*s){*++s>32||(s[-1]^=s[-2]^=s[-1]^=s[-2]);*s&&f(s);}
Recursive version (58 bytes):
f(char*s){*++s-32&&*s||(s[-1]^=s[-2]^=s[-1]^=s[-2]);*s&&f(s);}
Steadybox
- 16.6k
- 5
- 42
- 84