fork(2) download
  1. #include <stdio.h>
  2.  
  3. char * find_end_of_string(char * str)
  4. {
  5. return *str ? find_end_of_string(str + 1) : str;
  6. }
  7.  
  8. void do_reverse_string(char * a, char * b)
  9. {
  10. char tmp;
  11.  
  12. if (a < b) {
  13. tmp = *a;
  14. *a = *b;
  15. *b = tmp;
  16.  
  17. do_reverse_string(a + 1, b - 1);
  18. }
  19. }
  20.  
  21. void reverse_string(char * str)
  22. {
  23. do_reverse_string(str, find_end_of_string(str) - 1);
  24. }
  25.  
  26. int main() {
  27. char odd[] = "abcde";
  28. char even[] = "abcdef";
  29.  
  30. reverse_string(odd);
  31. reverse_string(even);
  32.  
  33. printf("%s\n%s\n", odd, even);
  34.  
  35. return 0;
  36. }
Success #stdin #stdout 0s 1832KB
stdin
Standard input is empty
stdout
edcba
fedcba