Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <locale.h>
- #include <stdlib.h>
- #include <windows.h>
- struct word
- {
- int count;
- char *word;
- };
- int readInputString(char* str)
- {
- printf("%s\n", "Введите строку: ");
- gets(str);
- int buf = 0;
- for (int i = 0; i < strlen(str); i++)
- if(str[i] == ' ')
- buf++;
- ++buf;
- return buf;
- }
- void createArrayOfStrings(char* strings[], char * str, int arrayOfStringsSize)
- {
- int stringSize = 0;
- for(int i = 0; i < arrayOfStringsSize; i++)
- {
- strings[i] = malloc(0);
- for (int j = 0; (str[stringSize] != ' ') && (str[stringSize] != '\0');)
- {
- //if(!(((str[stringSize] > 65) && (str[stringSize] < 90)) || ((str[stringSize] > 97) && (str[stringSize] < 122))))
- //continue;
- strings[i][j] = str[stringSize];
- ++stringSize;
- j++;
- }
- ++stringSize;
- }
- free(str);
- }
- void printWords(int arrayOfStringsSize, char* strings[])
- {
- int count = 0;
- int size = 0;
- int min = 2000;
- //--------------------------------------------------------------------------------------
- for(int i = 0; i < arrayOfStringsSize; i++) //создали массив слов отличных от последнего
- {
- if (strcmp(strings[i], strings[arrayOfStringsSize-1]) != 0)
- size++;
- }
- struct word words[size];
- //--------------------------------------------------------------------------------------
- for(int i = 0; i < arrayOfStringsSize; i++) //
- {
- count = 1;
- if (strcmp(strings[i], strings[arrayOfStringsSize-1]) != 0)
- {
- for(int j = 1; j < strlen(strings[i]); ++j)
- 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))
- count++;
- if (count < min)
- min = count;
- words[i].word = malloc(0);
- strcpy(words[i].word, strings[i]);
- words[i].count = count;
- }
- }
- free(strings);
- //--------------------------------------------------------------------------------------
- for (int i = 0; i < size; i++) //вывели слова
- if(words[i].count == min)
- puts(words[i].word);
- }
- int main() {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- setlocale(LC_ALL, "Rus");
- int arrayOfStringsSize;
- char* str = malloc(0);
- arrayOfStringsSize = readInputString(str);
- char* strings[arrayOfStringsSize];
- createArrayOfStrings(strings, str, arrayOfStringsSize);
- printWords(arrayOfStringsSize, strings);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement