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

Найти и вывести на экран слова, которые входят в текст только один раз. Исправьте ошибки в коде - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Опишите функцию Lower(G), определяющую имя самой невысокой женщины из группы http://www.cyberforum.ru/cpp-beginners/thread1069931.html
Для 7 человек, среди которых есть мужчины и женщины, хранятся следующие данные: имя, пол (true - мужской, false - женский), рост. Использовать для хранения данных об одном человеке запись (Pascal) ...
C++ Объясните для чего нужен конструктор Можете доступно объяснить для чего нужен конструктор, на примере этого кода. #include <iostream> #include <conio.h> #include <locale.h> #include <string.h> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread1069927.html
C++ Двунаправленный линейный список строк
Двунаправленный линейный список строк. Нужно сформировать список, вывести его и добавить новые элементы. Если кто-то может помочь большое вам человеческое спасибо. Добавлено через 17 часов 9 минут...
Реализовать операцию вставки нового элемента в отсортированный список и операцию извлечения из списка данных C++
реализовать операцию вставки нового элемента в отсортированный список и операцию извлечения из списка данных о 3-х студентов с самым низким рейтинговым баллом!!! уже сделано пол программы нужно...
C++ Матрица по заданной схеме http://www.cyberforum.ru/cpp-beginners/thread1069894.html
Помогите, пожалуйста. Необходимо отобразить матрицу используя двумерный массив по схеме как на картинке. Пересмотрел все, что здесь уже было выложено, но подобного прохода не нашел.
C++ Библиотеки программы Знаю, что подобные темы обсуждались, но ничего путного не нашел. Написал программу CLR, но работает она только на моем компьютере, т.к. только у меня есть нужные библиотеки Если поменять в... подробнее

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

Найти и вывести на экран слова, которые входят в текст только один раз. Исправьте ошибки в коде - C++

14.01.2014, 05:22. Просмотров 628. Ответов 0
Метки (Все метки)

В произвольном тексте (взятом из файла), содержащем не более 10 строк, в каждой строке не более 80 символов (текст вывести на экран), найти и вывести на экран слова, которые входят в текст только один раз. Посчитать для каждой строки сколько раз встречаются такие слова. Вывести статистическую информацию по каждой строке. Выведенную информацию продублировать в выходной текстовый файл, имя файла задает пользователь.

Исправьте ошибки плиз.
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include <iostream>
#include <fstream>
#include <string>
#include <locale>
using namespace std;
 
const int m = 10;
char *s[m];
char wstr[80];
 
char* Array[1000];
int i,k,j, kol_str, dl_str, count_str = 0;
string FNameIn = "input.txt";
string FNameOut = "output.txt";
string result = "";
string words ="";
 
 
void AskFilename()
{
    cout<<"Пожалуйста, введите название для входного файла: ";
    cin >> FNameIn;
    cout << endl;
 
    cout << "Введите название для выходного файла: ";
    cin >> FNameOut;
    cout << endl;
}
 
bool ReadFile()
{
    int curline = 0;
 
    ifstream in1(FNameIn.c_str());
    if (!in1)
    {
        cout << "Невозможно открыть файл " << FNameIn << endl;
        return false;
    }
    while(!in1.eof())
    {
        char S[80] = {""};
        in1.getline(S, 80);
        s[curline] = new char[strlen(S+1)];
        strcpy(s[curline], S);
        curline++;
    }
 
    kol_str = curline;
    return true;
}
 
bool Parse(string word)
{
    char* ar = new char[];
    strcpy( ar, word.c_str() );
 
    for (int i = 0; i < 1000; i++)
    {
        if (!strcmp(Array[i],ar))
        {
            return false;
        }
    }
    Array[count_str]=ar;
        count_str++;
        return true;
}
 
void ParseFile()
{
    int count_words = 0;
    cout << endl << "Первоначальный текст" << endl << endl;
    for (i=0; i<kol_str; i++)
    {
        dl_str = strlen(s[i]);
        string word = "";
 
        for (j = 0; j<=dl_str; j++)
        {
            cout << s[i][j];
            if (!(s[i][j] == ' ' || s[i][j] == '\0' || s[i][j] == '.' ||s[i][j] == ',' || s[i][j] == '\n'))
            {
                word += s[i][j];
            }
            else 
            {
 
                if (word != "") 
                {
                    if (Parse(word)) 
                    {
                        count_words++;
                        words += word;
                        words += "\n";
                        
                    }
                }
                word = "";
            }
        }
 
        result += "Слов, которые больше нигде не встречаются, в строке " + to_string(i+1) + ": " + to_string(count_words) + " штук\n" ;
        count_words = 0;
        cout << endl;
    }
}
 
void PrintResult()
{
    cout << endl << "Встречающиеся только один раз слова: " << endl;
    cout << words <<endl;
    cout << result;
}
 
bool SaveResult()
{
 
    ofstream out(FNameOut);
    if (!out)
    {
        cout << "Невозможно создать файл " << FNameOut << endl;
        return false;
    }
    out << endl << "Встречающиеся только один раз слова: " << endl;
    out << words <<endl;
    out << result;
    cout << endl << endl << "Итоговый текст был успешно сохранен" << endl;
    return true;
}
 
int main()
{
 
    for (int i=0;i<1000;i++)
    {
        Array[i]=new char[50];
    }
 
    setlocale(0, "");
    AskFilename();
    if(ReadFile()) {
    ParseFile();
    PrintResult();
    SaveResult(); }
    system("PAUSE");
}
Добавлено через 23 часа 30 минут
Что не кто помочь не может??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru