Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- char *dodaj(char *, char *);
- int saberi(int, int);
- void spoji_saberi(int, char **, char* (*)(char *, char *), int (*)(int, int));
- int main(int argc, char **argv)
- {
- spoji_saberi(argc, argv, dodaj, saberi);
- return 0;
- }
- void spoji_saberi(int argc, char **argv, char* (*dodaj)(char *, char *), int (*saberi)(int, int))
- {
- char *str = calloc(1, sizeof(char));
- int suma = 0;
- int j;
- for (int i = 0; i < argc; i++)
- {
- if (strcmp(argv[i], "-s") == 0)
- {
- j = i + 1;
- while (j < argc && strcmp(argv[j], "-b"))
- {
- realloc(str, sizeof(str) + sizeof(*argv[j]) + 1);
- strcpy(str, dodaj(str, argv[j]));
- j++;
- }
- }
- if (strcmp(argv[i], "-b") == 0)
- {
- j = i + 1;
- while (j < argc && strcmp(argv[j], "-s"))
- {
- suma = (*saberi)(suma, atoi(argv[j]));
- j++;
- }
- }
- }
- printf("suma:%d\n", suma);
- printf("string:%s\n", str);
- }
- int saberi(int suma, int n)
- {
- return suma + n;
- }
- char *dodaj(char *total, char *str)
- {
- return strcat(total, str);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement