Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 31.08.2017
Сообщений: 5

Как сделать поиск количества слов в строке

04.09.2017, 02:49. Показов 1272. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте подскажите как сделать поиск количества слов
В стрингах.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream> 
#include <string> 
using namespace std; 
int main() 
{ 
    string str ="allo allo vr kr"; 
    
    for (int i = 0;i<str.size();i++) 
    { 
        if(str[i] == 'allo') 
            cout << "ok";
    } 
}
Нужно что бы 2 раза вывелось ok
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.09.2017, 02:49
Ответы с готовыми решениями:

Поиск количества слов строке(как можно проще)
Здравствуйте.Я недавно начал изучать с++ и столкнулся с проблемой. Нужно написать программу поиска количества слов строке, но как можно...

Поиск количества слов в строке
Доброго времени суток. Нужна помощь. Сделал программу сервер для поиска количества слов в строке на С+. Всё бы хорошо, но мне нужно...

Файлы: поиск количества слов в строке
Дан текстовый файл F1. Подсчитать количество слов в каждой строке. Результат сохранить в новый текстовый файл f2 в виде : строка n –...

14
23 / 24 / 20
Регистрация: 03.07.2015
Сообщений: 66
04.09.2017, 05:22
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <sstream>
#include <string> 
 
using namespace std;
int main()
{
    string s;
    istringstream is("allo allo vr kr");
    while (is >> s)
    {
        if (s == "allo")
            cout << "ok\n";
    }
    return 0;
}
0
Рэмбо комнатный
 Аватар для GeFacle
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
04.09.2017, 07:03
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
string temp = ""; unsigned int counter = 0; // counter - счетчик слов 
for ( unsigned int i = 0 ; i < str.length() + 1 ; i++ )
{
   if ( str[i] != ' ' && str[i] != '\0' )//ну и допиши всякие разделительные знаки
   {
      temp += str[i];
   }
   else
   {
      if ( temp == "allo" ) { counter++; }
      temp = "";   
   }
}
0
125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788
04.09.2017, 11:15
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
#include <bits/stdc++.h>
using namespace std;
bool is_sep(char c)
{
    if (c=='.' || c ==',' || c == ' ' || c == '?' || c == '!')//etc
    return true;
    return false;
}
int main(){
    string s;
    getline(cin,s);
    string words[100];
    int j = 0;
    string wordToFind = "allo";
    for(int i = 0; i < s.length(); i++)
    {
        if (is_sep(s[i])) j++; else
        words[j]+=s[i];
    }
    for(int i = 0; i <= j; i++)
    {
//cout<<words[i]<<" ";
        if (words[i]==wordToFind) cout<<"ok"<<endl;
    }
    return 0;
}
0
Рэмбо комнатный
 Аватар для GeFacle
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
04.09.2017, 13:49
Цитата Сообщение от Aymurat Посмотреть сообщение
string words[100];
зачем тебе массив? используй просто string words;
0
125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788
04.09.2017, 19:13
Цитата Сообщение от GeFacle Посмотреть сообщение
зачем тебе массив? используй просто string words;
Я разбил строку на слова, храню каждое слово в ячейке массива
0
Рэмбо комнатный
 Аватар для GeFacle
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
05.09.2017, 04:40
Aymurat, окей, так тоже норм
а если слов будет > 100?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
05.09.2017, 16:42
Что вы вкладываете в понятие
Цитата Сообщение от Alekss14 Посмотреть сообщение
поиск количества слов
? Подсчёт количества слов, подсчёт количества определённых слов или поиск подстроки (слова) в строке?

Добавлено через 2 минуты
Если подсчёт определённых слов, то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
 
int main()
{
    const std::string str = "allo allo vr kr", k = "allo";
    std::istringstream ist(str);
    std::cout << std::count(std::istream_iterator<std::string>(ist), std::istream_iterator<std::string>(), k);
}
0
125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788
07.09.2017, 15:32
GeFacle, вообще, можно реализовать через вектор и push_back, само будет расширяться
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
07.09.2017, 15:41
Хм, а на подобии этого можно сделать в C++?
Pascal
1
2
  var a := 'lala ok ok lol';
  Println(a.ToWords().Count('ok'));
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
07.09.2017, 15:54
Цитата Сообщение от Volobuev Ilya Посмотреть сообщение
на подобии этого
Наподобие чего? Опишите задачу, а не решение.
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
07.09.2017, 16:08
На подобии использования Linq для задачи поиска количества слов "ok" в строке.
0
 Аватар для MisterR
69 / 68 / 52
Регистрация: 28.10.2015
Сообщений: 388
07.09.2017, 16:10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int func(string str, string s)
{
    vector<string>v{istream_iterator<string>(istringstream(str)), istream_iterator<string>()};
 
    //return v.end()!=find(v.begin(), v.end(), s);                    совпадение
    //return v.size();                                количество слов
    //return count(v.begin(), v.end(), s);                  количество определенных слов
    return 0;
}
int main()
{
    string str = "right left up down";
    string s = "up";
    cout << func(str,s) << endl;
    return 0;
}
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
07.09.2017, 17:30
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string str{ "alloalo vr kr" };
 
    size_t count{};
    for (size_t pos{}; (pos = str.find("allo", pos)) != string::npos; ++pos, ++count);
 
    cout << count << endl;
 
    system("pause");
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
07.09.2017, 17:42
Цитата Сообщение от Volobuev Ilya Посмотреть сообщение
На подобии использования Linq для задачи поиска количества слов "ok" в строке.
Ну так выше я привёл кусок кода, который это делает. Лаконичнее не получится.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.09.2017, 17:42
Помогаю со студенческими работами здесь

Поиск в строке количества слов до ключевого слова
Прошу помочь разобраться с регулярными выражениями Есть код для поиска кол-ва слов в строке типа: string SomeText =&quot;Some...

Поиск заданной буквы в строке. Определения количества слов
В заданной строке определить количество слов, в которых заданная буква встречается больше одного раза. Язык С. Помогите пожалуйста!

Строка: Поиск количества слов в строке, которые оканчиваются и начинаются с одной и той же буквы
Пожалуйста, помогите с задачей поиска количества слов в строке, которые оканчиваются и начинаются с одной и той же буквы. Как написать код...

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru