Advertisement
ben1939

תרגיל 6 סעיף א

Dec 17th, 2013
463
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdlib.h>
  2.  
  3. int my_strlen(const char str[])     // Helper function
  4. {
  5. int counter = 0;
  6.   while (str[counter] != '\0')
  7.      counter++;
  8. return counter;
  9. }
  10.  
  11.  
  12. int my_strcmp(const char str1[], const char str2[], int idx1, int idx2, int size)     // Helper function
  13. {
  14.  for (; size > 0; size--) {
  15.         if (str1[idx1] != str2[idx2]) return 1;
  16.            idx1++; idx2++;      }
  17. return 0
  18. }
  19.  
  20.  
  21. char* replicate_str(const char* str, int times)
  22. {
  23.  
  24. int n=my_strlen(str), i, j;
  25. char *ptr;  
  26.  
  27. ptr =  (char*)malloc( ((n*times)+1)*sizeof(char) );
  28. if(ptr==NULL) return NULL;
  29.  
  30. if(n==0 || times==0) free(str);
  31. return str;
  32.  
  33. for(i=0; i<=times; i++) {
  34. for(j=0; j<n; j++) {
  35. ptr[(i*n)+j] = str[j];
  36. ptr[(i*n)+j+1)]= '\0' ;  }
  37. }
  38. return ptr;  
  39. }
  40.  
  41.  
  42. int* locate_str(const char* str, const char* find, int* numOfHits) {
  43.  
  44. int n=my_strlen(str); , k= my_strlen(find); , i,  *copy;
  45.  
  46. *numOfHits = 0;
  47.  
  48. if (n==0 || n < k)
  49. retutn NULL;
  50.  
  51. copy = (int*)malloc((*numOfHits)*sizeof(int));
  52.    if(copy==NULL) {
  53.         return NULL;
  54. *numOfHits = -1;
  55. }
  56.  
  57.   for(i = 0; i < n; i++){
  58.   if(my_strcmp(str,find, i,0,k)==0)        
  59.   copy[*numOfHits]=i
  60.    *numOfHits++; }
  61.  
  62. if(*numOfHits==0) return NULL;
  63.  
  64. return copy;
  65.  
  66. }
  67.  
  68.  
  69.  
  70. char* join_strs(const char* strs[], int numOfStrs, char delimiter)
  71. {
  72.  
  73. int i, n , k , j , total;  
  74. char *join;
  75.  
  76. for(i=0; i<=numOfStrs; i++)
  77. n = n+my_strlen(strs[i]);  
  78.  
  79. join=(char*)malloc(n+numOfStrs-1);
  80.  
  81. for(k=0; k < numOfStrs ;k++) {
  82.    for (j=0; j<my_strlen[k]; j++) {
  83. join[total]= strs[k][j];
  84. total++ ;  
  85.       }
  86.       if (total!= n- 1) {
  87.           joine[total] = delimiter;
  88.                 total++;  
  89.      }
  90.  
  91. }
  92.  
  93. join[total]= '\0';
  94.  
  95. return join;
  96.  
  97. }
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement