Форум программистов, компьютерный форум CyberForum.ru

Упорядочить в каждой строке текста слова в алфавитном порядке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задачка на C++ http://www.cyberforum.ru/cpp-beginners/thread5367.html
День Добрый. Такая ситуация, сижу на зачете, не могу решить простенькую задачку, помогите плз...вопрос моего допуска на экзамен :( **** По паре натуральных чисел n,m найти цифры которые имеются в записи n, но отсутствуют в записи m. Выдать сообщение, или числа имеют общий набор цифр. ***** Верно ли, что точки пересечения параболы y=ax^2 и прямой px+qy+z=0 лежат в квадрате со сторонами...
C++ прооостенькая прожка) не изучал ни када С++,надо, но как то руки не доходят. помогите пожалуйста) :cray: Написать программу, которая проверяет, содержит ли массив два одинаковых элемента. Число элементов в массиве и элементы массива вводятся с клавиатуры Код видимо простенький) Заранее Огромеееннооое спасибо http://codeforum.ru/images/smilies/smile.gif http://www.cyberforum.ru/cpp-beginners/thread5365.html
C++, Одномерный массив - разминка для мозгов C++
Есть следующая задачка: "Используйте одномерный массив для решения. Считать 100 чисел, каждый из которых между 1 и 10 включительно(подразумевается использование только int). После считывания каждого числа, вывести его на экран только если он не повторяет уже считанное и показанное число. Используйте наименьший возможный массив для решения." Есть решение, но не уверен что оно оптимальное......
C++ Помогите,пожалуйста, с задачей! С++
Вводиться предложение ввиде строки. Слов в предложении разделяются между собой пробелом или запятой. Для решения задачи применять функции из библиотеки string.h. Напечатать все слова, которые совпадают с ее первым словом.
C++ Вывести список простых чисел до введенного с клавиатуры значения http://www.cyberforum.ru/cpp-beginners/thread5310.html
Ребят помогите плз!В с++ ваще невтыкаю, еще в паскале шарю кое как а тут нифига(Вообщем оч простая прога: 1)Вводится с клавиатуры чилсо,и должно вывести все простые числа(ну которые делятся на 1 и на само себя) не включая ето! 2)ну или так если непонятно:Вывести список простых чисел до введенного с клавиатуры значения. Оч прошу хелп а то допуск не получу!
C++ Помогите решить задачу, пожалуйста! Здравствуйте!!! Помогите решить задачу на с++ Вот такое условие: Армия расположена на островах, соединенных так, что имеется сообщение между любыми двумя островами. Найти все такие мосты, уничтожив любой из которых можно разбить армию. Задание надо сделать через графы. Начал решать, определил класс Граф как массив массивов. Заранее спасибо. подробнее

Показать сообщение отдельно
sasha45
0 / 0 / 0
Регистрация: 16.01.2008
Сообщений: 3

Упорядочить в каждой строке текста слова в алфавитном порядке - C++

16.01.2008, 23:55. Просмотров 1613. Ответов 6
Метки (Все метки)

Помогите пожалуйста. Очень срочно нужна помощь людей, знающих С. Нужно написать программу в которой:
Задан текст, содержащий произвольное количество строк, в котрых отдельные слова могу разделяться одним или несколькими пробелами и знаками пунктуации (перенос слов не используется). Сформировать новый текст, который является результатом следующего преобразования:упорядочить в каждой строке слова в алфавитном порядке.

В общем у меня написано все, но функция обработки не хочет работать. Посмотрите пожалуйста:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
char **obrabotka(char **text, int n)
// n - кол-во строк в тексте. **text - введенный текст
{
    char **res;
    // переменная под результатchar **tmp;
    // для работы с исходным текстом
    int j;
    int k,l,z;
    struct words
    {
        char *p;      // указатель на первую букву слова
        int len;      // количество букв в слове
    }    words[80];
    memset(&words, '\0', sizeof(words));   // обнуляем p==NULL - элемент
    // не использовался
    tmp=text;
    for(j=0; j<n; j++);   // Идем по строкам текста
    {
        // и производим обработку отдельно каждой строки
        while((**tmp!='\0' && (k<80)))   // пока не конец строки
            // и в строке меньше 80 слов
        {
            if(words[k].p==NULL)
                *words[k].p=**tmp;
            switch (**tmp) // проверка на разделители
            {
            case ' ':
            case '.':
            case ',':
            case ';':
            case '\n':
            case '!':
            case '#':
            case '@':
            case '?':
            case '/':
            case '>':
            case '<':
            case ':':
            case '$':
            case '(':
            case ')':
            case '*':
            case '&':
            case '-':
            case '=':
            case '+':
                words[k].len=*tmp-words[k].p;  // разница между указателями - длина
// слова. tmp указывает на начало след. слова
// или на конец строки
                k++;          // переходим к след. слову
                break;
            }
            tmp++;
        }
        words[k].len=*tmp-words[k].p;
        printf(" %u слов найдено в строке \n", k+1);
        // Сортировка
        for(; k>0; k--)     // k - максимальное значение элементов массива
        {
            for(l=0; l<l; l++)
            {
                if(strncmp(words[l].p,words[l+1].p,MIN(words[l].len,words[l+1].len))>0)
                {
                    *tmp=words[j].p;
                    z=words[l].len;
                    //перестановка элемента
                    words[l].p=words[l+1].p;
                    words[l].len=words[l+1].len;
                    words[l+1].p=*tmp;
                    words[l+1].len=z;
                }
            }
        }
        res=(char**)calloc(strlen(*text)+1,1);    // выделение памяти под результат
        for(k=0,tmp=res; words[k].p!=NULL; k++);
        {
            while((words[k].len--)>0)
                **(tmp++)=*(words[k].p++);
            **(tmp++)=*(words[k].p)?*(words[k].p): ' ';
            //копируем оригинальный разделитель слов
        }
        **tmp='\0';
        // записываем конец строки
        return res;   // возвращаем результат}
    }
Программу нужно сдать завтра, а из-за этой функции она не хочет работать.
Помогите плиз разобраться где ошибка.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru