char *obrabotka(char *text) // В функцию передается указатель на строку
{
char **slova=NULL; // Указатель на двумерный массив, в котором 1 строка - это 1 слово
// строки
// Указатель на символ
char *a;
int i,j,n=0,m=0,k;
// Указатель на переменную для обмена значений
char *z=NULL;
// Выделение памяти
slova=(char**)malloc(sizeof(char));
a=(char*)malloc(sizeof(char));
z=(char*)malloc(sizeof(char));
// Передаем строку
a=text;
// Пока не конец строки
while(a!='\0')
{
// Пока символ - разделитель
while(checkChar(a)==0)
{
// Пропускаем его
i++;
a+=1;
// Если конец строки - прервать цикл
if(a=='\0')
break;
}
if(a=='\0')
break;
// Выделение памяти под строки массива
slova=(char**)realloc(slova,(n+1)*sizeof(char*));
for(j=0;checkChar(a)!=0;j++)
{
// Выделение памяти под элементы строки массива
slova[n]=(char*)realloc(slova[n],(m+1)*sizeof(char));
// Запись слов в строки массива
*(slova[n]+j)=*(a+i);
m++;
// Переход к след. символу
a+=1;
}
n++;
}
// Дальше вроде как идет сортировка
for(i=0;i<n+1;i++)
{
for(k=i+1;k<n+1;k++)
{
if(strcmp(slova[i],slova[k])>0)
{
z=slova[i];
slova[i]=slova[k];
slova[k]=z;
}
}
}
// Возвращаем результат
return slova[i];
}