Advertisement
Guest User

Untitled

a guest
Mar 30th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.33 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdbool.h>
  4. #include <string.h>
  5. #include <ctype.h>
  6.  
  7. int pozicije[1000];
  8. int counter;
  9. char sekvenca [1000];
  10. char staTrazis[1000];
  11. void jelSekvenca(int odakle, char sekvenca [], char g []);
  12. char *zamjena(char *sek, char *stara, char *nova1);
  13. FILE *genes;
  14. int main()
  15. {
  16.     int i,j,duzina;
  17.     char name[10];
  18.     printf("Enter name of a gene: ");
  19.     gets(name);
  20.     printf("Enter a sequence: ");
  21.     gets(sekvenca);
  22.     duzina=strlen(sekvenca);
  23.     printf("%d",duzina);
  24.     if (strlen(sekvenca)%2==0)
  25.     {
  26.      strncat(sekvenca,"k",1);
  27.     }
  28.     for(i=0;i<=duzina;i++)
  29.     {
  30.         sekvenca[i]=toupper(sekvenca[i]);
  31.     }
  32.     char *newstr=NULL;
  33.     char g [1000] = "C";
  34.  
  35.     char konj [10000];
  36.     strcpy(konj,sekvenca);
  37.     char *p = g;
  38.  
  39.  
  40.     //system("cls");
  41.     genes=fopen("genes.txt","a+");
  42. fprintf(genes,"%s",name);
  43.  
  44. for(i = 401; i < 421;i++)
  45.     {
  46.      jelSekvenca(i,konj,g);
  47.     }
  48.     fprintf(genes,"\t%d",counter);
  49.     counter=0;
  50.  
  51. for(i = 421; i < 441;i++)
  52.     {
  53.      jelSekvenca(i,konj,g);
  54.     }
  55.     fprintf(genes,"\t%d",counter);
  56.     counter=0;
  57.  
  58. for(i = 441; i < 461;i++)
  59.     {
  60.      jelSekvenca(i,konj,g);
  61.     }
  62.     fprintf(genes,"\t%d",counter);
  63.     counter=0;
  64.  
  65. for(i = 461; i < 481;i++)
  66.     {
  67.      jelSekvenca(i,konj,g);
  68.     }
  69.     fprintf(genes,"\t%d",counter);
  70.     counter=0;
  71.  
  72. for(i = 481; i < 501;i++)
  73.     {
  74.      jelSekvenca(i,konj,g);
  75.     }
  76.     fprintf(genes,"\t%d",counter);
  77.     counter=0;
  78.  
  79. for(i = 501; i < 521;i++)
  80.     {
  81.      jelSekvenca(i,konj,g);
  82.     }
  83.     fprintf(genes,"\t%d",counter);
  84.     counter=0;
  85.  
  86. for(i = 521; i < 541;i++)
  87.     {
  88.      jelSekvenca(i,konj,g);
  89.     }
  90.     fprintf(genes,"\t%d",counter);
  91.     counter=0;
  92.  
  93. for(i = 541; i < 561; i++)
  94.     {
  95.      jelSekvenca(i,konj,g);
  96.     }
  97.     fprintf(genes,"\t%d",counter);
  98.     counter=0;
  99.  
  100. for(i = 561; i < 581;i++)
  101.     {
  102.      jelSekvenca(i,konj,g);
  103.     }
  104.     fprintf(genes,"\t%d",counter);
  105.     counter=0;
  106.  
  107.  
  108. for(i = 581; i < 601;i++)
  109.     {
  110.      jelSekvenca(i,konj,g);
  111.     }
  112.     fprintf(genes,"\t%d",counter);
  113.     counter=0;
  114.  
  115.  
  116. fprintf(genes,"\n");
  117. return 0;
  118. }
  119.  
  120. void jelSekvenca(int odakle, char sekvenca [], char g [])
  121.         {
  122.             bool jest = true;
  123.             int i;
  124.             for(i = odakle; i < strlen(g) + odakle; i++)
  125.             {
  126.                 if(!jest) break;
  127.                 if(sekvenca[i] != g[i-odakle])
  128.             jest = false;
  129.             }
  130.  
  131.             if(jest)
  132.             {
  133.                 pozicije[counter] = odakle;
  134.                 counter++;
  135.             }
  136.         }
  137.  
  138. char *zamjena(char *sek, char *stara, char *nova1)
  139. {
  140.     char *ret;
  141.     int i, count = 0;
  142.     int novaduzina = strlen(nova1);
  143.     int staraduzina = strlen(stara);
  144.  
  145.     for (i = 0; sek[i] != '\0'; i++)
  146.     {
  147.         if (strstr(&sek[i], stara) == &sek[i])
  148.         {
  149.             count++;
  150.             i += staraduzina - 1;
  151.         }
  152.     }
  153.     ret = (char *)malloc(i + count * (novaduzina - staraduzina));
  154.     if (ret == NULL)
  155.         exit(EXIT_FAILURE);
  156.     i = 0;
  157.     while (*sek)
  158.     {
  159.         if (strstr(sek, stara) == sek)
  160.         {
  161.             strcpy(&ret[i], nova1);
  162.             i += novaduzina;
  163.             sek += staraduzina;
  164.         }
  165.         else
  166.         ret[i++] = *sek++;
  167.     }
  168.  
  169.     ret[i] = '\0';
  170.     return ret;
  171. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement