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

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

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

Определить количество слов в тексте - C++

09.06.2013, 21:38. Просмотров 779. Ответов 19
Метки нет (Все метки)

Разработать алгоритм и программу для определения количества слов в тексте
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2013, 21:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить количество слов в тексте (C++):

Определить количество слов в заданном тексте и количество символов в каждом слове - C++
Определить количество слов в заданном тексте и количество символов в каждом слове

Определить количество слов в тексте - C++
Привет!:) Помогите решить :-[ В тексте все слова разделены пробелами или знаками препинания. Определить количество слов этого текста,...

Определить количество слов в тексте - C++
Определить количество слов в тексте. Слова в тексте могут быть разделены только с помощью одного символа пробела.

Определить количество слов в тексте - C++
Определить количество слов в тексте, у которых первый и последний символы совпадают ; выделить по нажатию клавиши первое из найденных...

Определить количество слов в тексте - C++
Доброго времени. Условие: Дана непустая последовательность слов из латинских букв, соседние слова отделены друг от друга запятой, за...

Определить количество слов в тексте, состоящих из K букв. C#/C++ - C++
Даны числа K и текст из слов разделенными пробелами, в конце точка. Определить количество слов в тексте, состоящих из K букв. Помогите...

19
Dani
09.06.2013, 21:39
  #2

Не по теме:

поищи по форуму. было уже такое over9000 раз

0
easybudda
Модератор
Эксперт CЭксперт С++
9664 / 5614 / 952
Регистрация: 25.07.2009
Сообщений: 10,778
09.06.2013, 21:52 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iterator>
#include <vector>
 
int words_count(const std::string & s) {
    std::istringstream ist(s);
    std::vector<std::string> vec;
    std::copy(std::istream_iterator<std::string>(ist), std::istream_iterator<std::string>(), std::back_inserter(vec));
    return vec.size();
}
 
int main() {
    std::string s;
    
    while ( std::cout << "String: " && std::getline(std::cin, s) && ! s.empty() )
        std::cout << words_count(s) << " words" << std::endl;
        
    return 0;
}
1
ann333
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 39
09.06.2013, 22:04  [ТС] #4
а можно ли попроще программу. Я только начинаю изучать язык, и половину библиотек и различных функций, модулей не знаю?(
0
MrGluck
Модератор
Эксперт CЭксперт С++
7282 / 4443 / 650
Регистрация: 29.11.2010
Сообщений: 12,023
09.06.2013, 22:07 #5
Не обязательно записывать в вектор, можно просто:
C++
1
2
3
4
5
6
7
8
int words_count(const std::string & s) {
    std::istringstream ist(s);
    std::string word;
    int counter = 0;
    while (ist >> word)
        counter++;
    return counter;
}
Добавлено через 1 минуту
Тут всего лишь надо понять как работает http://www.cplusplus.com/reference/sstream/istringstream/
Фактически, это так же, как и с std::cin, мы изначально инициализируем его некоторыми данными, а потом считываем с него как с обычного потока.
0
ann333
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 39
09.06.2013, 22:19  [ТС] #6
Спасибо, конечно этого тоже не изучали. Но думаю, разобраться стоит, надеюсь получится))
0
easybudda
09.06.2013, 22:23
  #7

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
Не обязательно записывать в вектор
Так гламурнее. Парадигма ТруЪ С++ - никаких явных циклов! Скопировали всё, что было, и размер вернули. И побоку, что просто в цикле посчитать и проще и быстрее...

1
ann333
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 39
09.06.2013, 22:29  [ТС] #8
в векторах я вообще не шарю.... хоть даже это и гламурно
0
MrGluck
Модератор
Эксперт CЭксперт С++
7282 / 4443 / 650
Регистрация: 29.11.2010
Сообщений: 12,023
09.06.2013, 22:32 #9
easybudda, а можно линк почитать? Мне это кажется неочевидным.
0
easybudda
Модератор
Эксперт CЭксперт С++
9664 / 5614 / 952
Регистрация: 25.07.2009
Сообщений: 10,778
09.06.2013, 22:36 #10
Цитата Сообщение от ann333 Посмотреть сообщение
этого тоже не изучали
Ну а потоки ввода/вывода изучали? Объект класса istringstream представляет собой поток ввода из переданной в его конструктор строки. Конструкция
Цитата Сообщение от MrGluck Посмотреть сообщение
while (ist >> word)
извлекает из этого потока по одному слову (набору символов отделённому пробелами) и
Цитата Сообщение от MrGluck Посмотреть сообщение
counter++;
подсчитывает, сколько слов удалось извлечь (когда слова кончатся, ist >> word вернёт false).

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
а можно линк почитать?
Это шутка такая. Пруфы можно где-нибудь на лурке поискать...

1
MrGluck
09.06.2013, 22:38
  #11

Не по теме:

Так и знал, что это сказки сишных эльфов и плюсоненавистников

0
ann333
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 39
09.06.2013, 22:44  [ТС] #12
потоки нет. Символьный тип. стандартные функции, ну постоянные. (как объявлять при описании, обращаться к отдельным символам и т.д).
Я самые азы знаю. У нас только месяца 2 назад началось обучение
0
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 831
09.06.2013, 22:47 #13
Цитата Сообщение от ann333 Посмотреть сообщение
потоки нет
а как вы выводите результат работы программы? почему-то догадываюсь, что через printf...
0
ann333
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 39
09.06.2013, 22:49  [ТС] #14
Olivеr, ввод и вывод через cin, cout
0
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 831
09.06.2013, 23:00 #15
Цитата Сообщение от ann333 Посмотреть сообщение
Olivеr, ввод и вывод через cin, cout
это и есть потоки.
cout - стандартный поток вывода, cin - стандартный поток для ввода
ознакомьтесь со строковым потоком stringstream. он не сложнее тех которыми Вы владеете
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2013, 23:00
Привет! Вот еще темы с ответами:

Определить количество слов в тексте, оканчивающихся на гласную букву - C++
Помогите пожалуйста с заданием, особенно пункт 2 ... :( С помощью текстового редактора создать файл, содержащий текст, длина которого...

Определить количество слов в тексте и среднюю длину слова - C++
Консольное приложение Win32 Текст задачи: Дан текст, в котором слова отделяются пробелами, в конце стоит точка. Определить...

Определить количество слов в тексте, совпадающих с введённым с клавиатуры словом - C++
Приветствую. Прошу помощи в данном задании: С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000...

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


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
09.06.2013, 23:00
Ответ Создать тему
Опции темы

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