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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
OverClocker
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 17
#1

Подсчёт слов в строке - C++

16.03.2011, 20:56. Просмотров 621. Ответов 5
Метки нет (Все метки)

Помогите пожалуйста, необходимо найти количество повторяющихся слов в строке.

Пример вывода в программе:

Исходная строка: stroka overclocker stroka overclocker stroka
Введите повторяющееся слово: stroka
Повторов слова в строке: 3
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2011, 20:56     Подсчёт слов в строке
Посмотрите здесь:

Ввод слов в массив и подсчёт введённых слов C++
C++ Подсчёт количества слов в строке
Подсчёт количества знаков препинания в строке C++
C++ Подсчёт количества символов в строке (cin.getline)
Подсчёт количества слов в данном текстовом файле C++
C++ Подсчёт числа слов в предложении - исправить ошибки
C++ Подсчёт количества слов в предложении
C++ Подсчёт первого слова в строке и задача на перестановку
C++ Подсчёт количества чисел в строке
Подсчёт слов в строке и вывод тех, которые встречаются более n раз C++
Подсчёт слов начинающихся с гласных, соглассных, цифр, или прочего C++
Подсчёт количества слов в тексте C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
16.03.2011, 21:34     Подсчёт слов в строке #2
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
#include <iostream>
#include <string>
#include <sstream>
 
using namespace std;
 
 
int main()
{   string word, cur;
    char cstr[256];
    int n = 0;
 
    cout<<"Your string:\n";
    cin.getline(cstr,256);
    string str(cstr);
 
for(int i=0;i<str.length();i++)
       if(str[i]=='.' || str[i]==',' || str[i]=='?' || str[i]=='!')//очистка от знаков препинания
           str[i]=' ';
 
    cout<<"\n\nYour word:\t";
    cin>>word;
 
    istringstream ist(str);
    while(ist>>cur)
        if(cur==word) n++;
    
    cout<<word<<" repeated "<<n<<" times in your string\n";
 
cin.get();
return 0;
}
OverClocker
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 17
17.03.2011, 00:17  [ТС]     Подсчёт слов в строке #3
Можно более понятнее программу для начинающего написать?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
 
void main ()
{
int i,k;
char str1[]="stroka overclocker stroka overclocker stroka";
char str2[];
cout<<"Исходная строка"<<str1;
cout<<"Введите слово:"; cin>>str2;
k=0;
 
...
 
cout<<"Повторов:"<<k;
getch ();
}
Как то вот так можно написать? Пожалуйста напишите кто может!
Во общем на языке Borland C++.
IrineK
Заблокирован
17.03.2011, 00:23     Подсчёт слов в строке #4
Как то вот так можно написать?
Очень даже. Как-то вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
 
void main ()
{
int i,k;
char str1[]="stroka overclocker stroka overclocker stroka";
char str2[];
cout<<"Исходная строка"<<str1;
cout<<"Введите слово:"; cin>>str2;
k=0;
 
...
 
cout<<"Повторов:"<<k;
getch ();
}
Думаю, теперь вы довольны. Любой автор обожает, когда его цитируют.
Даже "начинающий".
OverClocker
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 17
17.03.2011, 00:36  [ТС]     Подсчёт слов в строке #5
Просьба заключалась переписать программу на языке Borland C под DOS'ом. Кто может перепишите пожалуйста! Очень прошу! Заранее благодарю!
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
17.03.2011, 01:12     Подсчёт слов в строке #6
Цитата Сообщение от OverClocker Посмотреть сообщение
на языке Borland C под DOS'ом
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
    
typedef struct WRD {
    char * text;
    int count;
    struct WRD * next;
} wrd_t;
 
wrd_t * new_word(const char * s){
    wrd_t * ret;
    
    if ( ( ret = (wrd_t*)malloc(sizeof(wrd_t)) ) == NULL )
        return NULL;
    if ( ( ret->text = strdup(s) ) == NULL ){
        free(ret);
        return NULL;
    }
    ret->count = 1;
    ret->next = NULL;
    
    return ret;
}
 
wrd_t * del_word(wrd_t * w){
    wrd_t * ret;
    
    if ( ! w )
        return NULL;
    ret = w->next;
    free(w->text);
    free(w);
    
    return ret;
}
 
#define DELIM " \t\n,.!?:;"
 
int main(void){
    wrd_t * first, * last, * current;
    char buf[BUFSIZ], * p;
    
    while ( printf("String: ") && scanf("%[^\n]%*c", buf) == 1 ){
        first = NULL;
        for ( p = strtok(buf, DELIM); p; p = strtok(NULL, DELIM) ){
            for ( current = first; current; current = current->next ){
                if ( ! strcmp(p, current->text) ){
                    current->count += 1;
                    break;
                }
            }
            if ( current )
                continue;
            if ( ( current = new_word(p) ) == NULL ){
                fprintf(stderr, "Memory error!\n");
                exit(1);
            }
            if ( ! first )
                first = current;
            else
                last->next = current;
            last = current;
        }
        
        if ( ! first ){
            fprintf(stderr, "Empty string!\n");
            continue;
        }
        
        printf("%-30s%s\n----------------------------------------\n", "word", "count");
        for ( current = first; current; current = current->next )
            printf("%-30s%d\n", current->text, current->count);
        printf("----------------------------------------\n\n");
        
        while ( first = del_word(first) )
            ;
    }
    
    return 0;
}
Подсчёт слов в строке
Yandex
Объявления
17.03.2011, 01:12     Подсчёт слов в строке
Ответ Создать тему
Опции темы

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