Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 12.99 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <Windows.h>
  5. #include <string.h>
  6.  
  7. /*
  8. Я молодец иногда
  9. сделал много чего но сейчас делаю искание keyword2 в title2
  10. */
  11.  
  12. int russ(), vichislenie_simvolov(), vichislenie_simvolov_without_probelov(), vishislenie_slov();
  13. char array_text[5000] = { 'a' };
  14. char array_text_title[] = "Title: ";
  15. char array_text_title2[];
  16. char array_text_keyword[] = "Keyword: ";
  17. char array_text_keyword2[];
  18. char c;
  19. int i = 0, k;
  20. int input=0;
  21. int myfile;
  22. int input_file(int myfile), menu();
  23. char *istr;
  24. char *istr2;
  25. char header_tag_check();
  26. char keyword();
  27. char description_tag_check();
  28. int tablica(kolvosimvolov, kolvosimvolovbezprobelov, kolvoslov, ballsheader, primechanieheader1, primechanieheader2);
  29. int kolvosimvolov = 0;
  30. int kolvosimvolovbezprobelov = 0;
  31. int kolvoslov = 0;
  32. int ballsheader = 0;
  33. int primechanieheader1 = 0;
  34. int primechanieheader2 = 0;
  35.  
  36.  
  37. int main()
  38. {
  39.     russ();
  40.     input=array_text_keyword2[];
  41.     while (input !=10)
  42.     {
  43.         FILE *myfile;
  44.         myfile = fopen ("myFILE.txt", "r");
  45.         input=menu();
  46.         switch (input) {
  47.         case 1:
  48.             myfile = fopen ("myFILE.txt", "r");
  49.             i=input_file (myfile);
  50.             vichislenie_simvolov();
  51.             vichislenie_simvolov_without_probelov();
  52.             vishislenie_slov();
  53.             //header_tag_check();
  54.             break;
  55.         case 2:
  56.             vichislenie_simvolov();
  57.             break;
  58.         case 3:
  59.             vichislenie_simvolov_without_probelov();
  60.             break;
  61.         case 4:
  62.             vishislenie_slov();
  63.             break;
  64.         case 5:
  65.             header_tag_check();
  66.             break;
  67.         case 6:
  68.             tablica(kolvosimvolov, kolvosimvolovbezprobelov, kolvoslov, ballsheader, primechanieheader1, primechanieheader2);
  69.             break;
  70.         case 7:
  71.             //description_tag_check();
  72.             break;
  73.         case 8: keyword();
  74.             break;
  75.         default:
  76.             printf("Неправильный ввод.\n");
  77.             break;
  78.         }
  79.     }
  80. }
  81.  
  82. int input_file(int myfile)
  83. {
  84.     i=0;
  85.     while ((array_text[i] = fgetc (myfile)) != EOF)
  86.     {
  87.         i++;
  88.     }
  89.     return(i);
  90. }
  91.  
  92. int russ()
  93. {
  94.     SetConsoleCP(1251);
  95.     SetConsoleOutputCP(1251);
  96.     return(0);
  97. }
  98.  
  99. int menu()
  100. {
  101.     int menu_input=0;
  102.     printf("1. Ввод нового текста.\n");
  103.     printf("2. Посчитать кол-во символов.\n");
  104.     printf("3. Посчитать кол-во символов без пробелов.\n");
  105.     printf("4. Посчитать кол-во слов.\n");
  106.     printf("10. выход\n");
  107.     scanf("%d", &menu_input);
  108.     return(menu_input);
  109. }
  110.  
  111. int vichislenie_simvolov()
  112. {
  113.     for (k = 0; k < i; k++)
  114.     {
  115.         printf("%c", array_text[k]);
  116.     }
  117.     system ("cls");
  118.     printf("%d\n", i);
  119.     kolvosimvolov = i;
  120.     return(kolvosimvolov);
  121. }
  122.  
  123. int vichislenie_simvolov_without_probelov()
  124. {
  125.     for (k = 0; k < i; k++)
  126.     {
  127.         printf("%c", array_text[k]);
  128.     }
  129.     for (k = 0; k < i; k++)
  130.     {
  131.         if (array_text[k] == ' ')
  132.         {
  133.             i = i - 1;
  134.         }
  135.     }
  136.     system ("cls");
  137.     printf("%d\n", i);
  138.     kolvosimvolovbezprobelov = i;
  139.     return(kolvosimvolovbezprobelov);
  140. }
  141.  
  142. int vishislenie_slov()
  143. {
  144.     i=0;
  145.     myfile = fopen ("myFILE.txt", "r");
  146.     i=input_file (myfile);
  147.     int j=0, l=0;
  148.     for (k = 0; k < i; k++)
  149.     {
  150.         printf("%c", array_text[k]);
  151.     }
  152.     for (k = 0; k < i; k++)
  153.     {
  154.         if (((array_text[k] == ' ') || (array_text[k] == '\n') || (array_text[k] == '.')) && (j > 3))
  155.         {
  156.             l++;
  157.             j = 0;
  158.         }
  159.         else if ((array_text[k] == ' ') || (array_text[k] == '\n') || (array_text[k] == '.'))
  160.         {
  161.             j = 0;
  162.         }
  163.         j++;
  164.     }
  165.     system ("cls");
  166.     printf("\n%d\n", l);
  167.     kolvoslov = l;
  168.     return(kolvoslov);
  169. }
  170.  
  171. char header_tag_check()
  172. {
  173.     char *istr;
  174.     int j = 0;
  175.     int x = 0;
  176.     istr = strstr (array_text, array_text_title);
  177.     if ( istr == NULL)
  178.         printf("СТРАКА НЕ НАЙДЕНА АРА");
  179.     else
  180.     {
  181.         int k = istr-array_text;
  182.         //printf("СТРАКА НАЧИНАЕТСЯ С ПОЗИЦИИ СИЛЫ, ой точнее вот с этой позции %d, а её значение - %c\n", k, *(array_text+k));
  183.         i=0;
  184.         while (array_text_title[i]!= '\0')
  185.         {
  186.             i++;
  187.         }
  188.         //int x = 0;
  189.         while(array_text[x+k+i]!= '\n')
  190.         {
  191.             x++;
  192.         }
  193.         //printf("\nКол-во символов массива - %d\n", x);
  194.         for (j = 0; j < x; j++)
  195.         {
  196.             array_text_title2[j] = array_text[k+i+j];
  197.         }
  198.         for (j = 0; j < x; j++)
  199.         {
  200.             printf("%c", (array_text_title2[j]));
  201.         }
  202.         //printf("\nКол-во символов 2-го массива - %d\n" , j);
  203.         //printf("\nКол-во символов оставшейя оставшейся строки %d\n" , x-k-i);
  204.     }
  205.  
  206.  
  207.     int j2=0, l=0;
  208.     /*for (k = 0; k < i; k++)
  209.     {
  210.         printf("%c", array_text[k]);
  211.     }*/
  212.     for (j = 0; j < x; j++)
  213.     {
  214.         if (((array_text[j] == ' ') || (array_text[j] == '\n') || (array_text[j] == '.')) && (j2 > 3))
  215.         {
  216.             l++;
  217.             j2 = 0;
  218.         }
  219.         else if ((array_text[j] == ' ') || (array_text[j] == '\n') || (array_text[j] == '.'))
  220.         {
  221.             j2 = 0;
  222.         }
  223.         j2++;
  224.     }
  225.  
  226.     if (j > 60 && j < 75)
  227.     {
  228.         ballsheader = ballsheader + 33;
  229.         primechanieheader1 = 0;
  230.     }
  231.     else{
  232.         primechanieheader1 = 1;
  233.     }
  234.  
  235.     if (l <= 12)
  236.     {
  237.         ballsheader = ballsheader + 33;
  238.         primechanieheader2 = 0;
  239.     }
  240.     else{
  241.         primechanieheader2 = 1;
  242.     }
  243.     if (primechanieheader1 == 1)
  244.     {
  245.         primechanieheader1 = printf ("мало символов");
  246.     }
  247.     keyword();
  248.     int brozz = 0;
  249.     char *phub;
  250.     phub = strstr(array_text_title2, array_text_keyword2);
  251.     int k = phub-array_text_title2;
  252.     if (phub == NULL)
  253.     {
  254.         printf("не найдена строка");
  255.     }
  256.     else{
  257.         printf("%d da %d",k,x);
  258.     }
  259.     int jkeyword = 0;
  260.     int xkeyword = 8;
  261.     for (jkeyword = 0; jkeyword < xkeyword; jkeyword++)
  262.         {
  263.             printf("%c", (array_text_keyword2[jkeyword]));
  264.         }
  265.    // for (jkeyword = 0; jkeyword < xkeyword; jkeyword++)
  266.      //   {
  267.          //   array_text_keyword2[jkeyword] = array_text[kkeyword+i+jkeyword];
  268.        // }
  269.     /*while(strstr(array_text_title2, array_text_keyword2) != NULL)
  270.     {
  271.         brozz++;
  272.     }*/
  273.  
  274.     if (brozz == 1)
  275.     {
  276.         ballsheader = ballsheader + 33;
  277.     }
  278.     return(ballsheader, primechanieheader1, primechanieheader2);
  279. }
  280.  
  281. /*char header_tag_check()
  282. {
  283.     char *istr;
  284.     int j = 0;
  285.     int x = 0;
  286.     istr = strstr (array_text, array_text_title);
  287.     if ( istr == NULL)
  288.         printf("СТРАКА НЕ НАЙДЕНА АРА");
  289.     else
  290.     {
  291.         int k = istr-array_text;
  292.         //printf("СТРАКА НАЧИНАЕТСЯ С ПОЗИЦИИ СИЛЫ, ой точнее вот с этой позции %d, а её значение - %c\n", k, *(array_text+k));
  293.         i=0;
  294.         while (array_text_title[i]!= '\0')
  295.         {
  296.             i++;
  297.         }
  298.         //int x = 0;
  299.         while(array_text[k+i]!= '\n')
  300.         {
  301.             x++;
  302.         }
  303.         //printf("\nКол-во символов массива - %d\n", x);
  304.         for (j = 0; j < x; j++)
  305.         {
  306.             array_text_title2[j] = array_text[k+i+j];
  307.         }
  308.         for (j = 0; j < x; j++)
  309.         {
  310.             printf("%c", (array_text_title2[j]));
  311.         }
  312.         //printf("\nКол-во символов 2-го массива - %d\n" , j);
  313.         //printf("\nКол-во символов оставшейя оставшейся строки %d\n" , x-k-i);
  314.     }
  315.  
  316.     //char *phub;
  317.  
  318.     int brozz = 0;
  319.     while(strstr(array_text_title2, array_text_keyword2) != NULL)
  320.     {
  321.         brozz++;
  322.     }
  323.  
  324.     if (brozz < 1)
  325.     {
  326.         ballsheader = ballsheader + 33;
  327.     }
  328.  
  329.     int j2=0, l=0;
  330.     for (j = 0; j < x; j++)
  331.     {
  332.         if (((array_text[j] == ' ') || (array_text[j] == '\n') || (array_text[j] == '.')) && (j2 > 3))
  333.         {
  334.             l++;
  335.             j2 = 0;
  336.         }
  337.         else if ((array_text[j] == ' ') || (array_text[j] == '\n') || (array_text[j] == '.'))
  338.         {
  339.             j2 = 0;
  340.         }
  341.         j2++;
  342.     }
  343.  
  344.     if (j > 60 && j < 75)
  345.     {
  346.         ballsheader = ballsheader + 33;
  347.         primechanieheader1 = 0;
  348.     }
  349.     else{
  350.         primechanieheader1 = 1;
  351.     }
  352.  
  353.     if (l <= 12)
  354.     {
  355.         ballsheader = ballsheader + 50;
  356.         primechanieheader2 = 0;
  357.     }
  358.     else{
  359.         primechanieheader2 = 1;
  360.     }
  361.     if (primechanieheader1 == 1)
  362.     {
  363.         primechanieheader1 = printf ("мало символов");
  364.     }
  365.  
  366.     return(ballsheader, primechanieheader1, primechanieheader2);
  367. }
  368. */
  369. char description_tag_check()
  370. {
  371.     char *istr;
  372.     int j = 0;
  373.     int x = 0;
  374.     istr = strstr (array_text, array_text_title);
  375.     if ( istr == NULL)
  376.         printf("СТРАКА НЕ НАЙДЕНА АРА");
  377.     else
  378.     {
  379.         int k = istr-array_text;
  380.         //printf("СТРАКА НАЧИНАЕТСЯ С ПОЗИЦИИ СИЛЫ, ой точнее вот с этой позции %d, а её значение - %c\n", k, *(array_text+k));
  381.         i=0;
  382.         while (array_text_title[i]!= '\0')
  383.         {
  384.             i++;
  385.         }
  386.         //int x = 0;
  387.         while(array_text[x+k+i]!= '\n')
  388.         {
  389.             x++;
  390.         }
  391.         //printf("\nКол-во символов массива - %d\n", x);
  392.         for (j = 0; j < x; j++)
  393.         {
  394.             array_text_title2[j] = array_text[k+i+j];
  395.         }
  396.         for (j = 0; j < x; j++)
  397.         {
  398.             printf("%c", (array_text_title2[j]));
  399.         }
  400.         //printf("\nКол-во символов 2-го массива - %d\n" , j);
  401.         //printf("\nКол-во символов оставшейя оставшейся строки %d\n" , x-k-i);
  402.     }
  403.  
  404.     int j2=0, l=0;
  405.     /*for (k = 0; k < i; k++)
  406.     {
  407.         printf("%c", array_text[k]);
  408.     }*/
  409.  
  410.  
  411.     for (j = 0; j < x; j++)
  412.     {
  413.         if (((array_text[j] == ' ') || (array_text[j] == '\n') || (array_text[j] == '.')) && (j2 > 3))
  414.         {
  415.             l++;
  416.             j2 = 0;
  417.         }
  418.         else if ((array_text[j] == ' ') || (array_text[j] == '\n') || (array_text[j] == '.'))
  419.         {
  420.             j2 = 0;
  421.         }
  422.         j2++;
  423.     }
  424.  
  425.     if (j > 60 && j < 75)
  426.     {
  427.         ballsheader = ballsheader + 50;
  428.         primechanieheader1 = 0;
  429.     }
  430.     else{
  431.         primechanieheader1 = 1;
  432.     }
  433.  
  434.     if (l <= 12)
  435.     {
  436.         ballsheader = ballsheader + 50;
  437.         primechanieheader2 = 0;
  438.     }
  439.     else{
  440.         primechanieheader2 = 1;
  441.     }
  442.     if (primechanieheader1 == 1)
  443.     {
  444.         primechanieheader1 = printf ("мало символов");
  445.     }
  446.     return(ballsheader, primechanieheader1, primechanieheader2);
  447. }
  448.  
  449. char keyword()
  450. {
  451.     char *istrkeyword;
  452.     int jkeyword = 0;
  453.     int xkeyword = 0;
  454.     istrkeyword = strstr (array_text, array_text_keyword);
  455.     if ( istrkeyword == NULL)
  456.         printf("СТРАКА НЕ НАЙДЕНА АРА");
  457.     else
  458.     {
  459.         int kkeyword = istrkeyword-array_text;
  460.         i=0;
  461.         while (array_text_keyword[i]!= '\0')
  462.         {
  463.             i++;
  464.         }
  465.         printf("СТРАКА НАЧИНАЕТСЯ С ПОЗИЦИИ СИЛЫ, ой точнее вот с этой позции %d, а её значение - %c\n", kkeyword, *(kkeyword+i+array_text));
  466.         //int x = 0;
  467.         while(array_text[xkeyword+kkeyword+i]!= '\n')
  468.         {
  469.             xkeyword++;
  470.         }
  471.         //printf("\nКол-во символов массива - %d\n", x);
  472.         for (jkeyword = 0; jkeyword < xkeyword; jkeyword++)
  473.         {
  474.             array_text_keyword2[jkeyword] = array_text[kkeyword+i+jkeyword];
  475.         }
  476.         for (jkeyword = 0; jkeyword < xkeyword; jkeyword++)
  477.         {
  478.             printf("%c", (array_text_keyword2[jkeyword]));
  479.         }
  480.         //printf("\nКол-во символов 2-го массива - %d\n" , j);
  481.         //printf("\nКол-во символов оставшейя оставшейся строки %d\n" , x-k-i);
  482.     }
  483.     return(array_text_keyword2);
  484. }
  485.  
  486.  
  487. int tablica()
  488. {
  489.     printf("|------------------------------|--------|-------------------------------|\n");
  490.     printf("|Параметр                      |Значения|Примечание                     |\n");//30|8|30
  491.     printf("|------------------------------|--------|-------------------------------|\n");
  492.     printf("|Общее кол-во символов         |%8d|                               |\n",kolvosimvolov);
  493.     printf("|Кол-во символов без пробелов  |%8d|                               |\n",kolvosimvolovbezprobelov);
  494.     printf("|Кол-во слов                   |%8d|                               |\n",kolvoslov);
  495.     printf("|Корректность tittle           |%8d|                               |\n",ballsheader);
  496. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement