daily pastebin goal
41%
SHARE
TWEET

8.3 Бришење на текстуална низа

Mihajlo_K Mar 19th, 2019 45 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* Да се напише функција со која од дадена текстуална низа s1, зададена како прв аргумент на функцијата, ќе се избрише првото појавување на текстуалната низа s2 зададена како втор аргумент на функцијата. Ако втората низа s2 не е подстринг на s1, тогаш како резултат се враќа 0, а во спротивно 1. Задачата да се реши со помош на покажувачи. */
  2.  
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <ctype.h>
  6. #define MAX 100
  7.  
  8. int del(char *a, char *b)
  9. {
  10.     int t = strlen(b), s = 0, r = strlen(a), x = 0;
  11.     int i = 0, j = 0, k = 0;
  12.     while(*(a+i) != '\0')
  13.     {
  14.         if(*(a+i) == *(b+j))
  15.         {
  16.             int u = i;
  17.             while(*(a+u) != '\0')
  18.             {
  19.                 if(u+1 == r-x)
  20.                 {
  21.                     *(a+u) = '\0';
  22.                     break;
  23.                 }
  24.                 else
  25.                 {
  26.                     *(a+u) = *(a+(u+1));
  27.                 }
  28.                 u++;
  29.             }
  30.             s++;
  31.             k = 1;
  32.             j++;
  33.             i--;
  34.             x++;
  35.         }
  36.         else
  37.         {
  38.             if(*(b+j) == '\0')
  39.             {
  40.                 if(s == t)
  41.                 {
  42.                     return 1;
  43.                 }
  44.             }
  45.             else
  46.                 s = 0; j = 0;
  47.         }
  48.         i++;
  49.     }
  50.     if(k == 0)
  51.     {
  52.         return 0;
  53.     }
  54. }
  55. int main()
  56. {
  57.     int i;
  58.     char s1[MAX], s2[MAX], ch;
  59.     for(i = 0; i < MAX && (ch = getchar())!='\n'; i++)
  60.     {
  61.         s1[i] = ch;
  62.     }
  63.     s1[i] = '\0';
  64.     for(i = 0; i < MAX && (ch = getchar())!='\n'; i++)
  65.     {
  66.         s2[i] = ch;
  67.     }
  68.     s2[i] = '\0';
  69.  
  70.     if(del(&s1, &s2) == 1)
  71.     {
  72.         printf("%s\n", s1);
  73.     }
  74.     else
  75.         printf("Ne e najdena niza.");
  76.     return 0;
  77. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top