Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- // reorder command-line args, put all starting with '-' first
- void reorder(int argc, char *argv[])
- {
- int l = 1, r = argc - 1;
- while (*argv[l] == '-') // first traversal must check bounds
- if (++l >= r) return; // ok if only last != '-'
- while (*argv[r] != '-')
- if (--r <= l) return;
- do {
- char *aux = argv[l]; // swap if l < r
- argv[l] = argv[r];
- argv[r] = aux;
- while (*argv[++l] == '-'); // both will stop for sure
- while (*argv[--r] != '-');
- } while (l < r);
- }
- int main(int argc, char *argv[])
- {
- reorder(argc, argv);
- for (int i = 1; i < argc; ++i)
- puts(argv[i]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement