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

Найти слова, встречающиеся в каждом предложении текста. Работа с файлом опять) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ввод/вывод txt http://www.cyberforum.ru/cpp-beginners/thread972432.html
Один местный форумчанин помог с написанием проги, которая открывает input.txt с двумерным массивом (матрицей), берет каждое число из нее, производит какое-нибудь действие над этим числом (в моем случае к каждому числу приписывается пятерка и цифра 1, например, становится цифрой 15, цифра 2 становится цифрой 25 и т.п.) и результат записывает в такую же матрицу уже в output.txt. Остался маленький...
C++ Нарисовать окружность программа рисует прямоугольник, треугольник и линию. Помогите пожалуйста доделать так чтобы она и окружность рисовала, с задающимися координатами центра и радиусом..сама в программирование не сильна, но надо сдать(( http://www.cyberforum.ru/cpp-beginners/thread972412.html
Создание графического меню в Borland 3.1 C++
Доброго времени суток,господа!У меня есть программа справочник,но там меню,в котором выбираются все операции (добавление,удаление итд ) в текстовом виде.Как это можно это реализовать графически ? Искал в сети и пока ничего не нашел.Кто поделится советом или ссылкой - буду благодарен.
Выяснить, к чему приводятся переменные типа bool в арифметических выражениях C++
Народ помогите пожалуйста с заданиями,буду очень благодарен. Сам не силен в программировании,но это задали на завтра...( Выяснить, к чему приводятся переменные типа bool в арифметических выражениях. Отдельно – к чему приводится значение false, к чему – значение true. P.C. Киньте пожалуйста сразу архив с программой.
C++ Найти первый член последовательности http://www.cyberforum.ru/cpp-beginners/thread972395.html
Данные вещественные числа А и В (А <В). Найти первый член последовательности не принадлежащий .
C++ Подсчитать сумму элементов массива, значения которых кратны 8 Сформировать целочисленный массив IM (N), элементами которого являются случайные числа из диапазона . Подсчитать сумму элементов массива, значения которых кратны 8. подробнее

Показать сообщение отдельно
Lara1
1 / 1 / 0
Регистрация: 15.10.2011
Сообщений: 20
09.10.2013, 10:38     Найти слова, встречающиеся в каждом предложении текста. Работа с файлом опять)
Дан файл, содержащий текст на русском языке. Найти слова, встречающиеся в каждом предложении текста или сообщить, что таких слов нету.

Нашла программу (почти доделанную), немного переделала ( считывание из файла и запись в файл), Но ошибку исправить не могу.

В общем если в файле написано:
"мама мыла раму. окна мама тоже моет. мама устала", То слово "мама" программа находит.

НО! если написано: "мыла раму мама. окна мама тоже моет. мама устала" то уже нет.
То есть после первого слова, поиск второго не осуществляет(((

вот код: Весь текст записано в строке S
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
 int n = -1;                         // общее количество предложений в строке
    char *p = strtok(s, ".");           // разделитель между лексемой "точка", т е высекаем предложения
    if(p)                               // чтобы убедиться, что во входном тексте имеется хотя бы ОДНО предложение
    {
        n++;
        strcpy(a[n], p);
    }
    do
    {
        p = strtok(NULL, ".");
        if(p)
        {
            n++;
            strcpy(a[n], p);
        }
    }
    while(p);
    //  Разобъем ПЕРВОЕ предложение на слова и проверим
    // каждое слово с каждым словом в других предложениях. Если текущее слово не встретиться в остальных 
   //предложениях, значит оно  не подходит и переходим к следующему слову
    p = strtok(a[0], " ");                  // указываем, что разделитель между словами ПРОБЕЛ (a[0] - первое предложение во входном тексте)
    bool b, glob;                           // будет равна
    char tmp[LEN], tmp1[LEN];
    char *p1;
    bool yn = false;
    if(p)
        strcpy(tmp, p);
    while(p)
    {
        // пробегаем по всему массиву предложений кроме первого
        for(int i = 1; i <= n; i++)
        {      
            glob = true;
            b = false;           // предположим что текущего слова из ПЕРВОГО предложения НЕТ в остальных предложениях
            char d[LEN];
            strcpy(d, a[i]);  //ВОТ ТУТ ГДЕ ТО ОШИБКА ПО МОЕМУ ПРЕДПОЛОЖЕНИЮ
            p1 = strtok(d, " "); 
            if(p1)
            {
                strcpy(tmp1, p1);
                if(strcmp(tmp, tmp1) == 0)
                    b = true;
            }
            while(p1)
            {
                p1 = strtok(NULL, " ");
                if(p1)
                {
                    strcpy(tmp1, p1);
                    if(strcmp(tmp1, tmp) == 0)
                        b = true;
                }
            }
            if(b == false)
            {
                glob = false;
                break;              // нет смысла проверять в других предложениях, т к в i - ом анализируемого слова не обнаружено
            }
        }
        if(glob)
        {
            cout << tmp << "\t";
            yn = true;
            //cout << "\n\nSlovo '" << tmp << "' vstrechaetsya v kazdom predlozenii!";
        }
        p = strtok(NULL, " ");
        if(p)
            strcpy(tmp, p);
    }
    if(!yn)
        cout << "\n\nSlova vstreshusegosya vo vseh predlozeniyh NE obnaruzeno";
 
    if(p != NULL)
        delete []p;
Возможно можно использовать спец функции, но я не знаю какие и как ими пользоваться. Исходник текста взяла отсюда, но видимо он тоже неправильный((
Если кто знает, как реализовать, то буду очень благодарна.

Добавлено через 13 часов 53 минуты
Неужели никто не знает? Помогите пожалуйста, очень нужно, программа то ведь почти готова и и где ошибка есть, я тоже нашла... просто не знаю как исправить(((
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru