Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
mitia_gorev
0 / 0 / 0
Регистрация: 30.01.2015
Сообщений: 2
1

Разбить строку на слова и вывести количество повторений этих слов в строке

30.01.2015, 14:16. Просмотров 847. Ответов 2
Метки нет (Все метки)

Слова разделены пробелами
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2015, 14:16
Ответы с готовыми решениями:

Подсчитать количество слов в строке, вывести на экран слова минимальной и максимальной длины
Ввести строку. Подсчитать количество слов в строке, вывести на экран слова минимальной и...

Вывести каждое слово из строки с количеством повторений слова в строке
Доброго времени суток.Объясните пожалуйста как работает прога. Ввести строку. Вывести каждое слово...

Подсчитать количество вхождений слова "мама" в строку и вывести номера первых позиций этих вхождений
Не выводит номер позиции. Помогите пожалуйста Подсчитать количество вхождений слова «мама» в...

Из массива слов вывести все согласные буквы из слова наибольшей длины и число повторений этих букв
Дан массив из n слов произвольной длины(длина слова не превышает 80 символов). Вывести все...

Ввести строку и слово. Вывести количество слов в строке, имеющих длину, равную длине введенного слова.
Как ввести строку и слово, чтобы вывести количество слов в строке, имеющих длину, равную длине...

2
1XPLoade1
30 / 30 / 38
Регистрация: 23.01.2015
Сообщений: 174
30.01.2015, 15:48 2
Лучший ответ Сообщение было отмечено mitia_gorev как решение

Решение

V1:
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int main(int argc, char* argv[])
{
    static char str[256] = "apple fruit banana apple banana fruit orange apple orange fruit banana apple orange\0";
    static char** words = new char*[256];
    memset((void*)words, 0x00, 4 * 256);
 
    char* word = strtok(str, " ");
    for (int i = 0; word != NULL; i++)
    {
        words[i] = new char[256];
        strcpy(words[i], word);
 
        word = strtok(NULL, " ");
    }
 
    for (int i = 0; words[i] != NULL; i++)
    {
        int count = 1; bool f = false;
        for (int k = i - 1; k >= 0 && !f; k--)
            f = (!strcmp(words[k], words[i])) ? 1 : 0;
 
        for (int j = i + 1; words[j] != NULL && !f; j++)
            if (!strcmp(words[i], words[j])) count++;
 
        if (f == false) 
            printf("word = %s count = %d\n", words[i], count);
    }
 
    _getch();
 
    return 0;
}
Добавлено через 28 минут
V2:
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
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
 
using namespace std;
 
int main(int argc, char* argv[])
{
    std::string str = "apple fruit banana apple banana fruit orange apple orange fruit banana apple orange grapefruit \0";
    std::vector<std::string> words;
    std::map<std::string, int> wscount;
    istringstream iss(str);
 
    std::string word = "\0";
    while (iss >> word && iss.peek() != EOF)
    {
        words.push_back(word);
        wscount.insert(std::pair<std::string, int>(word, 0));
    }
 
    std::map<std::string,int>::const_iterator it;
    for (it = wscount.begin(); it != wscount.end(); it++)
    {
        int count = count_if(words.begin(), words.end(), 
            [it](std::string s) { return s == it->first; });
 
        std::cout << it->first << " " << count << endl;
    }
 
    std::cin.get();
 
    return 0;
}
1
mitia_gorev
0 / 0 / 0
Регистрация: 30.01.2015
Сообщений: 2
31.01.2015, 00:47  [ТС] 3
Спасибо, очень помогло
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2015, 00:47

Ввести строку и слово. Вывести количество слов в строке, имеющих длину, равную длине введенного слова.
Ввести строку и слово. Вывести количество слов в строке, имеющих длину, равную длине введенного...

Вывести на экран слова начинающиеся с той же буквы, что и первое слово предложения. Напечатать строку после изъятия этих слов.
Помогите, пожалуйста с программой: Вывести на экран слова начинающиеся с той же буквы, что и...

Функция, получает строку слов и рзделителей, а на выходе имеет массив слов из строки и количество этих слов
мне нужна функция, которая во входе получает строку слов и рзделителей (&quot; &quot;, &quot;,&quot;, &quot;.&quot;, &quot;_&quot;, &quot;&quot;&quot;),...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru