Решить нужно языке Си.
Дана строка (char str[81]), состоящая из слов и разделителей. Слово – это непрерывная последовательность букв. Разделителями слов могут быть следующие символы: ! ' (двойные кавычки) ; : ? - . , [пробел]. Последовательности символов, не являющиеся словами (т.е. содержащие недопустимые символы), игнорировать. В строке найдите группы слов, имеющие одинаковый состав букв (количество одинаковых букв не имеет значения). Прописные и строчные буквы считать одинаковыми. Исходную строку не модифицировать. Слова выводить в порядке их вхождения в строку.
Реализовать и использовать функцию выделения слов в строке:
int strToWords ( const char str[81], int words[40][2]);
Входные данные:
str - исходная строка
Выходные данные:
words – массив границ слов, из которых состоит исходная строка; words[i][0] – левая граница i-го слова, words[i][1] – правая граница i-го слова
возвращаемое значение - кол-во слов в массиве
Реализовать и использовать функцию, которая определяет, одинаковы ли две строки по составу букв:
int compareByContents( const char str1[21], const char str2[21]);
Входные данные:
str1, str2 - исходные строки
Выходные данные:
возвращаемое значение - признак того, что строки имеют одинаковый состав букв (кол-во букв не учитывается): 1 – одинаковый состав, 0 – не одинаковый
Формат входных данных. [строка]
Формат выходных данных. [1-е слово из 1-й группы слов] [пробел] [2-е слово из 1-й группы слов] [пробел] и т.д. [перевод строки] [1-е слово из 2-й группы слов] [пробел] [2-е слово из 2-й группы слов] [пробел] и т.д.; если искомых слов нет, то напечатайте сообщение «no solution». Слова выводить в порядке их вхождения в строку.