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

Программа вытаскивает из текста латинские слова , как сделать , чтобы выписывала только повторяющиеся и показывала количество их повторений - C++

Восстановить пароль Регистрация
 
Alexxfed132
Сообщений: n/a
02.12.2012, 11:57     Программа вытаскивает из текста латинские слова , как сделать , чтобы выписывала только повторяющиеся и показывала количество их повторений #1
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
#include <iostream>
#include <iomanip>
#include <cstdio>
using namespace std;
int length(char *str)//функция определения длины строки
{int i=0;
while(str[i])
{i++;}
return i;
}
 
void main()
{
    setlocale(0,"rus");
    char e[80];
    cout<<"Введите символы"<<endl;
    gets(e);
    int ed=length(e);
    //ed-количество символов 
    int i,j,k;
    k=0;
    for(i=0;i<ed;i++)
        if(((e[i]>'a')&&(e[i]<'z'))||(e[i]=='.')||(e[i]==' '))
            k++;
    cout<<k<<endl;
    i=0;j=0;
    char str[80];
        do
        {
            if(((e[j]>'a')&&(e[j]<'z'))||(e[j]=='.')||(e[j]==' '))
            {
                str[i]=e[j];
                j++;
                i++;
            }
            else
                j++;
        }while(j<ed);
        
            int tochka=0,probel=0;
        //Проверка на точку в конце
    if(str[k-1]=='.')
        tochka++;
    //Проверка на наличие пробелов
    for(i=0;i<k;i++)
    {
        if(str[i]==' ')
            probel++;
 
    }
    
    if((probel==0)||(tochka==0))
        cout<<"Ваш текст не заканчиватся точкой И/ИЛИ в нем отсутствуют пробелы"<<endl;
    else
    {
    int w=0;
    for(i=0;i<k;i++)
        {
            if((str[i]!=' ')&&(str[i]!='.')&&(str[i]!='.'))
            w++;
        }
 
    if(w==0)
        {
            cout<<"В тексте отсутствуют латинские буквы"<<endl;
    }
    else
    {{
        cout<<"Вы ввели"<<endl;
        for(i=0;i<k;i++)
        cout<<str[i];
        cout<<endl;
        int q=0,ty=0;
    for(i=0;i<k;i++)//Цикл для определения длинны массива после удаления лишних точек и пробелов
    {
        if((str[i]==' ')&&(str[i-1]==' '))
            q++;
        if((str[i]=='.')&&(str[i-1]=='.'))
            ty++;
    }
    char *strN;
    int n=k-q-ty;
    strN=new char[n];
    for(j=0,i=0;j<k;j++)
        if(((str[j]==' ')&&(str[j-1]==' '))||((str[j]=='.')&&(str[j-1]=='.')))
            j++;
        else
            {
            strN[i]=str[j];
            i++;
            }
        /*cout<<"Текст после отбрасывания лишнего:"<<endl;
        
    for(i=0;i<n-1;i++)
    {
    cout<<strN[i];
    }
    cout<<endl;*/
        //Начинаем работать со словами
    char a[40][80];//Массив слов
    int b[40];//Массив счетчиков
    i=0;j=0; q=0;
 
    do
    {
        while((strN[i]!=' ')&&(strN[i]!='.'))
        {
            a[j][q]=strN[i];
            i++;
            q++;
        
        }
        b[j]=q;
        j++;
        i++;
        q=0;
    }while(strN[i-1]!='.');
    int kolslov=j;
    cout<<"Текст пословно"<<endl;
    for(i=0;i<kolslov;i++)
    {
        for(j=0;j<b[i];j++)
        cout<<a[i][j];
        cout<<endl;
    }
    //Теперь начинаем искать равные слова
    
    
    
    
    }
    }
    }
system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2012, 11:57     Программа вытаскивает из текста латинские слова , как сделать , чтобы выписывала только повторяющиеся и показывала количество их повторений
Посмотрите здесь:

Как сделать что бы повторяющиеся элементы выводило и считало только один раз? C++
C++ Напечатать повторяющиеся слова из текста
C++ Строки (вывести все слова, содержащие только латинские буквы)
Нужно сделать так, чтобы программа запускалась только если ей передать заданный аргумент. C++
Массивы. Найти повторяющиеся элементы и количество повторений каждого из таких элементов C++
C++ Найти в тексте слова, в которых присутствуют только заглавные латинские буквы
C++ Программа работает только с одним разрешением экрана, как сделать чтобы она была универсальна
Дана строка текста, в которой слова разделены пробелами и запятыми, вывести повторяющиеся слова C++

Искать еще темы с ответами

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

Текущее время: 23:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru