#include #include void apply_to_argv(int argc, char ** argv, void (*fn)(char*)){ for(int i = 0; i < argc; i++) fn(argv[i]); } void print_with_length(char* arg){ printf("%s: (%d characters)\n", arg, strlen(arg)); } int main(int argc, char ** argv){ int sum = 0; // Not global anymore void count_chars(char* arg){ sum += strlen(arg); printf("sum = %d\n", sum); } apply_to_argv(argc, argv, print_with_length); apply_to_argv(argc, argv, count_chars); printf("Total Characters: %d\n", sum); sum = 0; char *like_argv[] = {"one", "two", "raccoon", "blender", "toaster"}; apply_to_argv(5, like_argv, print_with_length); apply_to_argv(5, like_argv, count_chars); printf("Total Characters: %d\n", sum); return 0; }