Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.27 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5.  
  6. char *dodaj(char *, char *);
  7. int saberi(int, int);
  8. void spoji_saberi(int, char **, char* (*)(char *, char *), int (*)(int, int));
  9.  
  10.  
  11. int main(int argc, char **argv)
  12. {
  13.     spoji_saberi(argc, argv, dodaj, saberi);
  14.     return 0;
  15. }
  16.  
  17. void spoji_saberi(int argc, char **argv, char* (*dodaj)(char *, char *), int (*saberi)(int, int))
  18. {
  19.     char *str = calloc(1, sizeof(char));
  20.     int suma = 0;
  21.     int j;
  22.  
  23.     for (int i = 0; i < argc; i++)
  24.     {
  25.         if (strcmp(argv[i], "-s") == 0)
  26.         {
  27.             j = i + 1;
  28.             while (j < argc && strcmp(argv[j], "-b"))
  29.             {
  30.                 realloc(str, sizeof(str) + sizeof(*argv[j]) + 1);
  31.                 strcpy(str, dodaj(str, argv[j]));
  32.                 j++;
  33.             }
  34.         }
  35.  
  36.         if (strcmp(argv[i], "-b") == 0)
  37.         {
  38.             j = i + 1;
  39.             while (j < argc && strcmp(argv[j], "-s"))
  40.             {
  41.                 suma = (*saberi)(suma, atoi(argv[j]));
  42.                 j++;
  43.             }
  44.         }
  45.     }
  46.  
  47.     printf("suma:%d\n", suma);
  48.     printf("string:%s\n", str);
  49. }
  50.  
  51. int saberi(int suma, int n)
  52. {
  53.     return suma + n;
  54. }
  55.  
  56. char *dodaj(char *total, char *str)
  57. {
  58.     return strcat(total, str);
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement