Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

Дана строка, содержащая текст. Указать количество слов, которые содержат хотя бы одну букву из звонких согласных.
Прога вместо вывода количества слов считает пробелы.
Буду очень признателен если подскажете, как исправить условие, ибо сам цикл останавливается на 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, 12:06   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Код:
if (str[i + 1] == 'б','в','г','д','ж','з','л','м','н','р' || str[0] == ' ')
Подумайте как исправить это строчку.
waleri вне форума Ответить с цитированием
Старый 24.12.2016, 12:26   #3
Belfire
Пользователь
 
Регистрация: 24.12.2016
Сообщений: 18
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Код:
if (str[i + 1] == 'б','в','г','д','ж','з','л','м','н','р' || str[0] == ' ')
Подумайте как исправить это строчку.
я бы рад, но я не способен логически это продумать как это исправить(
Belfire вне форума Ответить с цитированием
Старый 24.12.2016, 13:57   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так подумайте о том что вы в ней сделать пытаетесь.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 24.12.2016, 15:34   #5
Belfire
Пользователь
 
Регистрация: 24.12.2016
Сообщений: 18
По умолчанию

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

Цитата:
Сообщение от waleri Посмотреть сообщение
Код:
if (str[i + 1] == 'б','в','г','д','ж','з','л','м','н','р' || str[0] == ' ')
Подумайте как исправить это строчку.
Мне подсказали, что ее следует исправить на эту строчку, но теперь прога при вводе предложений со звонкими согласными в словах выдает в результате 0. Может там найдется еще какой-нибудь косяк по мимо этого?(
Код:
if (strchr("бвгджзлмнр", str[i+1]))
Belfire вне форума Ответить с цитированием
Старый 24.12.2016, 16:49   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

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

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

Ну или при нахождении звонкой буквы запоминать это (например bool переменная) и не проверять буквы до нахождения следующего слова.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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