Advertisement
Guest User

lab9 pro5

a guest
Nov 22nd, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.65 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. // reorder command-line args, put all starting with '-' first
  4.  
  5. void reorder(int argc, char *argv[])
  6. {
  7. int l = 1, r = argc - 1;
  8. while (*argv[l] == '-') // first traversal must check bounds
  9. if (++l >= r) return; // ok if only last != '-'
  10. while (*argv[r] != '-')
  11. if (--r <= l) return;
  12. do {
  13. char *aux = argv[l]; // swap if l < r
  14. argv[l] = argv[r];
  15. argv[r] = aux;
  16. while (*argv[++l] == '-'); // both will stop for sure
  17. while (*argv[--r] != '-');
  18. } while (l < r);
  19. }
  20.  
  21. int main(int argc, char *argv[])
  22. {
  23. reorder(argc, argv);
  24. for (int i = 1; i < argc; ++i)
  25. puts(argv[i]);
  26. return 0;
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement