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

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

19.04.2010, 19:59. Показов 1269. Ответов 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
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru