Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 24.12.2016, 12:37   #1
Belfire
Пользователь
 
Регистрация: 24.12.2016
Сообщений: 14
Репутация: 10
По умолчанию Указать количество слов имеющих хотя бы одну из звонких согласных

Дана строка, содержащая текст. Указать количество слов, которые содержат хотя бы одну букву из звонких согласных.
Прога вместо вывода количества слов считает пробелы.
Буду очень признателен если подскажете, как исправить условие, ибо сам цикл останавливается на 19 строке и тут же прога идет на вывод.
Код:

#include "stdafx.h" 
#include "stdio.h" 
#include "string.h" 
#include "iostream" 
#include "clocale" 
#include "sstream" 
using namespace std; 
 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
     string str; 
     cout«"Enter text: "; 
     getline(cin,str); 
     istringstream ist(str); 
     cout « "\n\Result: "; 
     int size, count = 0; 
     size = str.length(); 
     for (int i = 0; i < size; i++) 
          if (str[i] == ' ') 
               if (str[i + 1] == 'б','в','г','д','ж','з','л','м','н','р' || str[0] == ' ') 
                    count++; 
     cout « count « endl; 
     cout « "\n" 
     system ("pause"); 
     return 0; 
}

Belfire вне форума   Ответить с цитированием
Старый 24.12.2016, 13:06   #2
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 4,889
Репутация: 1442
По умолчанию

Код:

if (str[i + 1] == 'б','в','г','д','ж','з','л','м','н','р' || str[0] == ' ')

Подумайте как исправить это строчку.
waleri вне форума   Ответить с цитированием
Старый 24.12.2016, 13:26   #3
Belfire
Пользователь
 
Регистрация: 24.12.2016
Сообщений: 14
Репутация: 10
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Код:

if (str[i + 1] == 'б','в','г','д','ж','з','л','м','н','р' || str[0] == ' ')

Подумайте как исправить это строчку.
я бы рад, но я не способен логически это продумать как это исправить(
Belfire вне форума   Ответить с цитированием
Старый 24.12.2016, 14:57   #4
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 13,384
Репутация: 2579

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Так подумайте о том что вы в ней сделать пытаетесь.
Alex11223 вне форума   Ответить с цитированием
Старый 24.12.2016, 16:34   #5
Belfire
Пользователь
 
Регистрация: 24.12.2016
Сообщений: 14
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Так подумайте о том что вы в ней сделать пытаетесь.
Я пытаюсь сделать так, чтобы прога выводила количество слов удовлетворяющих условию задачи. Поэтому мне нужно сделать так, чтобы прога при обнаружении в слове одной из звонких согласных тут же переходила к проверке другого слова, что и позволит подсчитывать их количество, но дело то в том, что я не знаю как это написать в C++, ибо я в этом нубас(
Belfire вне форума   Ответить с цитированием
Старый 24.12.2016, 17:21   #6
Belfire
Пользователь
 
Регистрация: 24.12.2016
Сообщений: 14
Репутация: 10
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Код:

if (str[i + 1] == 'б','в','г','д','ж','з','л','м','н','р' || str[0] == ' ')

Подумайте как исправить это строчку.
Мне подсказали, что ее следует исправить на эту строчку, но теперь прога при вводе предложений со звонкими согласными в словах выдает в результате 0. Может там найдется еще какой-нибудь косяк по мимо этого?(
Код:

if (strchr("бвгджзлмнр", str[i+1]))

Belfire вне форума   Ответить с цитированием
Старый 24.12.2016, 17:49   #7
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 13,384
Репутация: 2579

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от Belfire Посмотреть сообщение
чтобы прога при обнаружении в слове одной из звонких согласных тут же переходила к проверке другого слова
В первом проходе цикла — никак. Вы ж не знаете где следующее слово.

Для упрощения можно сначала разделить строку на слова (записать в массив/std::vector).

Ну или при нахождении звонкой буквы запоминать это (например bool переменная) и не проверять буквы до нахождения следующего слова.
Alex11223 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указать количество согласных qaguero11 Общие вопросы Delphi 28 13.07.2016 19:28
найти максимальную длину кольца, построенного из слов, содержащих одинаковое количество гласных и согласных букв. TSlav Паскаль 4 08.04.2015 13:49
количество слов в предложении, гласных и согласных букв Делфи 7 программирование Помощь студентам 3 10.10.2013 21:32
Дана строка символов - определить количество слов, имеющих заданную длину n. Неопытный Общие вопросы Delphi 5 17.05.2012 15:16
Дана строка, состоящая из нескольких слов. Найти количество слов, которые содержат хотя бы одну букву "А" Mashaa Помощь студентам 13 09.12.2009 14:28




04:21.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru