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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2017, 19:02   #1
ElsiLacker
Новичок
Джуниор
 
Регистрация: 27.12.2017
Сообщений: 1
По умолчанию [C++] Помогите написать программу, которая во вводимом с клавиатуры тексте выберет слова, заканчивающиеся согласной буквой, и выведет их на экран. Есть код.

Не получается, хоть убейте, совсем глупая, наверное

Код:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <windows.h>

using namespace std;

int main()
{

	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);

	char str[100] = "";


	cout << "BBEDITE CTPOKY: ";
	cin >> str;
	gets_s(str);
	cout << "BBEDEHO: " << str << endl;

	int N = 0, i = 0; // количество символов в строке
	while (str[i] = '\0')
	{
		i++; N++;

	}
	
	for (int i = 0; i < 100; i++)

			if (str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' || str[i] == 'u' || str[i] == 'y')
		
				printf ("%s" , str);
			

	system("pause");

	return 0;
}
ElsiLacker вне форума Ответить с цитированием
Старый 28.12.2017, 09:47   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Если убивать всех глупых, то количество жителей резко уменьшиться. Если Вы не собираетесь быть программистом. А так решение Вашей задачи сводится к следующему:

Измеряем длину введенной пользователем строки.
Если длина не нулевая, то это значит, что есть хотя бы одно слово.
Перебираем каждый символ строки до очередного пробела.
Если очередной символ является пробелом, то уменьшаем количество символов на 1, проверяем, что символ не гласная и печатаем (вот только вопрос, а если не буква, или латынь?), восстанавливаем счетчик и продолжаем так до конца строки. Тут конечно может возникнуть проблема при наличии более одного пробела между словами, тогда придется искать начало следующего слова, по неравенству пробелу. Удачи!
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 28.12.2017, 10:56   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Sweta Посмотреть сообщение
то уменьшаем количество символов на 1,
Зачем?
Цитата:
Сообщение от Sweta Посмотреть сообщение
Тут конечно может возникнуть проблема при наличии более одного пробела между словами
Вариант
Код:
#include <iostream>
#include <stdio.h>
using namespace std;

bool isDelimiter(const char s)
{
    const char Delimiters[10] = " ,.;:?!\n\0";
    for (int i = 0; i < 10; i++){ if (s == Delimiters[i]) return true; }
    return false;
}

bool isVowel(const char s)
{
    const char Vowels[13] = "aeiouyAEIOUY";
    for (int i = 0; i < 13; i++){ if (s == Vowels[i]) return true; }
    return false;
}

void Stroka(char *str)
{
    setlocale(0,"");
    cout << "Введите строку на английском:\n\n";
    
    cin.getline(str, 255);
    int len=0;
    while(str[len]!='\0') len++;
    
    char word[256];
    int wl = 0;
    for (int i = 0; i < len; i++){
        word[wl++]=str[i];
        if ( isDelimiter(str[i+1])){
           if(isVowel(str[i]) ) cout << "\n" << word;
       *word = 0;
        wl=0;}
    }
}
int main()
{
    char str[256];
    Stroka(str);
    //system("pause > null");
    return 0;
}
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ во вводимом с клавиатуры тексте выберет слова, количество букв «м» в которых будет максимально, и выведет их на экран. Maxe Помощь студентам 11 29.01.2017 13:17
Создать программу , которая при вводе строки символов выведет эти символы на экран. neon21 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 12.12.2015 00:31
Принять с клавиатуры натуральное число n. Написать рекурсивную функцию, которая выведет все четные числа от n до 1. Андрей Иванов Помощь студентам 7 10.05.2015 10:31
Java. Найти в тексте слова, заканчивающиеся на заданную букву. Помогите, написать комментарии к программе lenulichkal Помощь студентам 1 05.12.2014 08:36
программу, которая выведет на экран недельный заработок каждого служащего butamun Помощь студентам 4 10.12.2009 16:23