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

как опредилить вхождения каждого слова в строке? - C++

Восстановить пароль Регистрация
 
Akydzava
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 9
06.06.2010, 16:36     как опредилить вхождения каждого слова в строке? #1
Помогите пожалуйста,мой мозг кипит))Как опредилить вхождения каждого слова в строке.Пример:
Папа мама ,папа,мама
Папа -2 раза.
Мама - 2 раза.
??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2010, 16:36     как опредилить вхождения каждого слова в строке?
Посмотрите здесь:

C++ Строка,подщёт вхождения каждого слова
Написать функцию, меняющую первую букву каждого слова в строке на номер слова. C++
Написать функцию, меняющую первую букву каждого слова в строке на номер слова C++
C++ После каждого слова в строке S1 вставить строку S2
Определить количество вхождений каждого слова в заданную строку C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.06.2010, 03:24     как опредилить вхождения каждого слова в строке? #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
33
34
#include <stdio.h>
#include <stdlib.h>
 
int CountSubLine(size_t *p, const char *l, const char *sub);
 
/* считает количество вхождений слова в строке */
int main(void) /* ANSI C89 */
{
    char *s = "abcd one defg two hijk one";
    size_t n;
    
    printf("Line: %s" "\n", s);
    
    CountSubLine(&n, s, "one");
    printf("%s = %d" "\n", "one", n);
    
    CountSubLine(&n, s, "two");
    printf("%s = %d" "\n", "two", n);
    
    return EXIT_SUCCESS;
}
 
int CountSubLine(size_t *p, const char *l, const char *sub)
{
    char *tmp;
    size_t n;
        
    for (n = 0; (l = strstr(l, sub)) != NULL; l += strlen(sub))
        n++;
    
    *p = n;
    
    return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
07.06.2010, 03:55     как опредилить вхождения каждого слова в строке? #3
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
#include <iostream>
#include <iomanip>
#include <string>
#include <sstream>
#include <map>
 
int main(){
    std::string buf, tmp;
 
    std::cout << std::left;
 
    while ( true ){
        std::cout << "\nString: ";
        std::getline(std::cin, buf);
        if ( buf.empty() )
            break;
        std::istringstream ist(buf);
        std::map<std::string, int> map;
        while ( ist >> tmp )
            map[tmp]++;
 
        if ( map.empty() )
            return 1;
 
        std::cout << "Word                Count\n------------------------------" << std::endl;
        for ( std::map<std::string, int>::const_iterator i = map.begin(); i != map.end(); ++i )
            std::cout << std::setw(20) << i->first << i->second << std::endl;
    }
 
    return 0;
}
Akydzava
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 9
07.06.2010, 10:04  [ТС]     как опредилить вхождения каждого слова в строке? #4
Цитата Сообщение от easybudda Посмотреть сообщение
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
#include <iostream>
#include <iomanip>
#include <string>
#include <sstream>
#include <map>
 
int main(){
    std::string buf, tmp;
 
    std::cout << std::left;
 
    while ( true ){
        std::cout << "\nString: ";
        std::getline(std::cin, buf);
        if ( buf.empty() )
            break;
        std::istringstream ist(buf);
        std::map<std::string, int> map;
        while ( ist >> tmp )
            map[tmp]++;
 
        if ( map.empty() )
            return 1;
 
        std::cout << "Word                Count\n------------------------------" << std::endl;
        for ( std::map<std::string, int>::const_iterator i = map.begin(); i != map.end(); ++i )
            std::cout << std::setw(20) << i->first << i->second << std::endl;
    }
 
    return 0;
}


Спасибо к,конечно, блоьшое ,а ты можешь объяснить что в каждой строчке происходит??И что там за функции??NT]

Добавлено через 3 минуты
Цитата Сообщение от Akydzava Посмотреть сообщение
Спасибо к,конечно, блоьшое ,а ты можешь объяснить что в каждой строчке происходит??И что там за функции??NT]
А ещё что такое std::??
Как это выглядит в программе?
Yandex
Объявления
07.06.2010, 10:04     как опредилить вхождения каждого слова в строке?
Ответ Создать тему
Опции темы

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