Advertisement
MaksNew

shitv1

Sep 12th, 2021
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.72 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <locale.h>
  4. #include <stdlib.h>
  5. #include <windows.h>
  6.  
  7. struct word
  8. {
  9.     int count;
  10.     char *word;
  11. };
  12.  
  13. int readInputString(char* str)
  14. {
  15.     printf("%s\n", "Введите строку: ");
  16.     gets(str);
  17.     int buf = 0;
  18.     for (int i = 0; i < strlen(str); i++)
  19.         if(str[i] == ' ')
  20.             buf++;
  21.     ++buf;
  22.     return buf;
  23. }
  24.  
  25. void createArrayOfStrings(char* strings[], char * str, int arrayOfStringsSize)
  26. {
  27.     int stringSize = 0;
  28.     for(int i = 0; i < arrayOfStringsSize; i++)
  29.     {
  30.         strings[i] = malloc(0);
  31.         for (int j = 0; (str[stringSize] != ' ') && (str[stringSize] != '\0');)
  32.         {
  33.             //if(!(((str[stringSize] > 65) && (str[stringSize] < 90)) || ((str[stringSize] > 97) && (str[stringSize] < 122))))
  34.                 //continue;
  35.             strings[i][j] = str[stringSize];
  36.             ++stringSize;
  37.             j++;
  38.         }
  39.         ++stringSize;
  40.     }
  41.     free(str);
  42. }
  43.  
  44. void printWords(int arrayOfStringsSize, char* strings[])
  45. {
  46.     int count = 0;
  47.     int size = 0;
  48.     int min = 2000;
  49.     //--------------------------------------------------------------------------------------
  50.     for(int i = 0; i < arrayOfStringsSize; i++) //создали массив слов отличных от последнего
  51.     {
  52.         if (strcmp(strings[i], strings[arrayOfStringsSize-1]) != 0)
  53.             size++;
  54.     }
  55.     struct word words[size];
  56.     //--------------------------------------------------------------------------------------
  57.     for(int i = 0; i < arrayOfStringsSize; i++) //
  58.     {
  59.         count = 1;
  60.         if (strcmp(strings[i], strings[arrayOfStringsSize-1]) != 0)
  61.         {
  62.             for(int j = 1; j < strlen(strings[i]); ++j)
  63.                 if (((strings[i][j-1]-strings[i][j]) == 31) || ((strings[i][j-1]-strings[i][j]) == -1) || ((strings[i][j-1]-strings[i][j]) == -33))
  64.                     count++;
  65.             if (count < min)
  66.                 min = count;
  67.             words[i].word = malloc(0);
  68.             strcpy(words[i].word, strings[i]);
  69.             words[i].count = count;
  70.         }
  71.     }
  72.     free(strings);
  73.     //--------------------------------------------------------------------------------------
  74.     for (int i = 0; i < size; i++) //вывели слова
  75.         if(words[i].count == min)
  76.             puts(words[i].word);
  77. }
  78.  
  79. int main() {
  80.     SetConsoleCP(1251);
  81.     SetConsoleOutputCP(1251);
  82.     setlocale(LC_ALL, "Rus");
  83.     int arrayOfStringsSize;
  84.     char* str = malloc(0);
  85.     arrayOfStringsSize = readInputString(str);
  86.     char* strings[arrayOfStringsSize];
  87.     createArrayOfStrings(strings, str, arrayOfStringsSize);
  88.     printWords(arrayOfStringsSize, strings);
  89. }
  90.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement