Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для amfisat
70 / 70 / 36
Регистрация: 16.06.2009
Сообщений: 240

Строка - количество слов с определенной буквой

19.04.2010, 19:59. Показов 1323. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Имеется такая задачка:
Дана строка, состоящая из 8 слов, разделенных 1 пробелом. Определить кол-во слов, в которых буква "а" встречается 3 раза.

Я так понимаю, что нужно считать 1 слово, записать его в буфер и проверить кол-во "а", и если оно=3, то счетчик +1. И так далее по каждому слову. Но у меня не получается реализовать этот алгоритм: непонятно, как считать отдельное слово. Подскажите, пжлст ...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.04.2010, 19:59
Ответы с готовыми решениями:

Посчитать количество слов с буквой а
Ребята, помогите, пожалуйста))) В чём ошибка? Задание: Задан текст. Необходимо посчитать количество слов с буквой а. Код: #include...

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

Количество слов, начинающихся и заканчивающихся одной буквой
#include <conio.h> #include <string.h> #include <iostream.h> #pragma argsused int main() { char s; int i,k=0,n=0,a,j=0; ...

9
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
19.04.2010, 20:20
Количество слов восемью не ограничено:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <sstream>
#include <string>
#include <algorithm>
 
int main(){
    std::string buf, tmp;
    const char ch = 'a';
    const int matches = 3;
    std::cout << "String: ";
    std::getline(std::cin, buf);
    std::istringstream ist(buf);
    size_t cnt = 0;
    while( ist >> tmp )
        if ( std::count(tmp.begin(), tmp.end(), ch) == matches )
            ++cnt;
    std::cout << cnt << " words contains " << matches << " characters '" << ch << "'" << std::endl;
    return 0;
}
1
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
19.04.2010, 20:25
Задаем 2 переменные: 1ая - счетчик слов, 2ая - счетчик букв "а". Считываем строку побайтно, сравниваем байт с "а" - если равно - счетчик "а" +1, если счетчик "а"=3, тогда счетчик слов +1, тут же сравниваем с " "(пробел) - если равно - счетчик "а"=0. В общем что-то типа :
C++
1
2
3
4
5
6
7
8
for (i=0; str[i]; i++)  {// str[i] -очередной байт из строки (строка же типа char, т.е. символ=байт)
   if (str[i]=='a')
   counta++;  //счетчик "а" 
   if (counta==3)
  counts++;  // счетчик слов
  if (str[i]==' ')
  counta=0; 
}
не, не совсем правильно, сходу написал, потом ошибку нашел)
0
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
19.04.2010, 20:26
все работает
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
19.04.2010, 20:35
C++
1
2
3
4
5
6
7
8
for (i=0; str[i]; i++)  {// str[i] -очередной байт из строки (строка же типа char, т.е. символ=байт)
   if (str[i]=='a')
   counta++;  //счетчик "а" 
   if ((str[i]==' ')&&(counta>=3)) {
  counts++;  // счетчик слов
  counta=0;}
 
}
Вроде так
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
19.04.2010, 20:46
Цитата Сообщение от PointsEqual Посмотреть сообщение
все работает
ага, даже картинка есть
0
 Аватар для amfisat
70 / 70 / 36
Регистрация: 16.06.2009
Сообщений: 240
19.04.2010, 20:52  [ТС]
А у меня ошибка вылазит ((( Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> 
#include <string> 
using namespace std;
int main(){ 
    int i, counta=0, counts=0;
    char *str = new char [];
    gets(str);
 
for (i=0; str[i]; i++)  {
   if (str[i]=='a')
     counta++;  //счетчик "а" 
   if ((str[i]==' ')&&(counta>=3)) {
     counts++;  // счетчик слов
     counta=0;}
}
cout<<counts<<endl;
return 0;
}
0
ниначмуроФ
 Аватар для PointsEqual
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
19.04.2010, 20:55
amfisat, замени этот код, выше правилный же
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
19.04.2010, 20:55
Цитата Сообщение от amfisat Посмотреть сообщение
А у меня ошибка вылазит
Первое, что заметил:
Цитата Сообщение от amfisat Посмотреть сообщение
char *str = new char [];
компилятор угадать должен, какого размера массив создать?
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
20.04.2010, 08:13
C++
1
2
3
4
5
6
7
8
9
for (i=0; str[i]; i++)  {
   if (str[i]=='a')
         counta++;  //счетчик "а" 
   if ((str[i]==' ')&&(counta>=3)) {
         counts++;  // счетчик слов
         counta=0;
   if ((str[i]==' ')&&(counta<3)) // добавить эти 2 строки
         counta=0;  }
}
Я только начал писать на C, до этого на ASMe писал(пишу), поэтому код не совсем удачный, но в таком виде как сейчас, вроде должен работать правильно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.04.2010, 08:13
Помогаю со студенческими работами здесь

Посчитать количество слов, начинающихся согласной и заканчивающихся буквой а
Здравствуйте, помогите пожалуйста решить задачу, сам уже 2ой день пытаюсь сделать: &quot;посчитать количество слов, начинающихся...

Определить количество слов строки заканчивающихся последней буквой алфавита
Дана строка символов, разделенных пробелами, запятыми, точками. Определить количество слов, заканчивающихся, последней буквой алфавита (...

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

Определить количество слов начинающихся и оканчивающихся одной и той же буквой
Дан текст. Определить количество слов начинающихся и оканчивающихся одной и той же буквой как будет код?

Определить количество слов, начинаются и заканчиваются одной и той же буквой
Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить количество слов, начинаются и...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru