Здравствуйте. Нужна помощь в написании функции. Я никак не могу сообразить. Программа сама пос ебе простая, но я не могу что-то сообразить, как реализовать на компьютере свои мысли.
В общем пользователь вводит строку, слова в строке разделяются пробелами и знаками препинания. Нужно сформировать новую строку, которая является преобразованием старой по след. правилу: упорядочить слова в строке в алфавитном порядке.
Ввод строки я написал. Благо тут ничего сложного нету.
char *vvod_str(char *str)
{
// Массив для хранения исходной строки
char a[81];
int i, exit=0;
int bul;
do
{
clrscr();
bul=1;
printf("\n Введите строку: ");
// Как только нарушится условие bul==1
// работа цикла прекращается
for(i=0;bul==1;i++)
{
a[i]=getchar();
if('\n'==a[i])
{
a[i]='\0';
str=(char*)calloc(i+1,1);
strcpy(str,a);
exit=1;
bul=0;
}
/* else
bul=0; */
}
}
while(exit==0);
return(str);
}
Далее идет функция обработки строки. Начало где-то такое:
// В функцию передается введенная пользователем строка
char *obrabotka(char *str)
{
// Для работы с исходной строкой
char *tmp;
int i,j,k;
// Массив, в котором каждое слово строки это строка массива
char mas_slov[81][81];
// Передаем исходную строку в функцию, присваивая её переменной tmp
tmp=str;
while(checkChar(tmp)!=0)
{
// Если разделитель
if(checkChar(tmp)==0)
// Идем посимвольно дальше
tmp++;
........ а вот что делать дальше не могу понять.
Как записать слово в строку двумерного массива.
А, да. Функция checkChar - функция проверки разделителей, которая возвращает целое значение 0, если в строке встретился разделитель, и возвращает 1, если это символ (буква или цифра).
Помогите пожалуйста написать функцию обработки.
В общем пользователь вводит строку, слова в строке разделяются пробелами и знаками препинания. Нужно сформировать новую строку, которая является преобразованием старой по след. правилу: упорядочить слова в строке в алфавитном порядке.
Ввод строки я написал. Благо тут ничего сложного нету.
Код
char *vvod_str(char *str)
{
// Массив для хранения исходной строки
char a[81];
int i, exit=0;
int bul;
do
{
clrscr();
bul=1;
printf("\n Введите строку: ");
// Как только нарушится условие bul==1
// работа цикла прекращается
for(i=0;bul==1;i++)
{
a[i]=getchar();
if('\n'==a[i])
{
a[i]='\0';
str=(char*)calloc(i+1,1);
strcpy(str,a);
exit=1;
bul=0;
}
/* else
bul=0; */
}
}
while(exit==0);
return(str);
}
Далее идет функция обработки строки. Начало где-то такое:
Код
// В функцию передается введенная пользователем строка
char *obrabotka(char *str)
{
// Для работы с исходной строкой
char *tmp;
int i,j,k;
// Массив, в котором каждое слово строки это строка массива
char mas_slov[81][81];
// Передаем исходную строку в функцию, присваивая её переменной tmp
tmp=str;
while(checkChar(tmp)!=0)
{
// Если разделитель
if(checkChar(tmp)==0)
// Идем посимвольно дальше
tmp++;
........ а вот что делать дальше не могу понять.
Как записать слово в строку двумерного массива.
А, да. Функция checkChar - функция проверки разделителей, которая возвращает целое значение 0, если в строке встретился разделитель, и возвращает 1, если это символ (буква или цифра).
Помогите пожалуйста написать функцию обработки.