#include <stdio.h>
#include <string.h>

int main(void) {
	// ideone не умеет в аргументы, поэтому так.
	const char *argv[] = {
		"./a.out", "-f", "xxx", "-f", "-f", "yyy", "-f"
	};
	int argc = sizeof(argv) / sizeof(argv[0]);
	
	puts("Before:");
	for (int i = 0; i < argc; i++) {
		printf("%d: %s\n", i, argv[i]);
	}
	
	for (int i = 0; i < argc; i++) {
		if (strcmp(argv[i], "-f") == 0) {
			memmove(&argv[i], &argv[i + 1], (argc - i - 1) * sizeof(argv[0]));
			// Компенсируем тот факт, что по i теперь новый элемент.
			i--;
			// Самих элементов тоже стало меньше.
			argc--;
		}
	}
	
	puts("After:");
	for (int i = 0; i < argc; i++) {
		printf("%d: %s\n", i, argv[i]);
	}
}
