Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Напечатать все слова, которые состоят из тех же букв что и последнее слово текста - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ задание по членам..valarray http://www.cyberforum.ru/cpp-beginners/thread443092.html
10. (*3) Реализуйте Matrix, используя для представления элементов члены valarray (а не указатель или ссылку на valarray). кто что думает. я так понял нужна 2х мерная матрица, но увы незя в...
C++ Задачи на массивы С++ 1)решить двумя способоми, сначала используя одномерный массив а потом двумерный.( и только с помощьюь массивов,никак по другому) Задача:Дана последовательность целых чисел. Подсчитать среднее... http://www.cyberforum.ru/cpp-beginners/thread443064.html
вывести минимальное значение C++
Из величин? определяемых выражением а=sinx, b=cosx, c=ln|x|.ПРи заданном х, ввывестти на экран дисплея минимальное значение!
C++ Снятие экрана сервера и отправка его клиенту.
Привет всем. Я пишу на VC++2010. Пишу только консольные приложения. По учебе дали написать прогу клиент-сервер, которая должна по запросу клиента делать как бы фотоснимки экрана сервера и...
C++ Не правильно показывает размер файла http://www.cyberforum.ru/cpp-beginners/thread443017.html
Написал программу которая должна показывать размер файла: #include <iostream> #include <fstream> #include <string> using namespace std; int main() { string name; cout << "Введите имя...
C++ Создание игры - Змейка. Здравствуйте. Подскажите с помощью чего можно создать такую игру как Змейка. Не в консольном варианте, а с 2D графикой. Изучил несколько учебников по С++ и теперь хотелось бы попробывать создать... подробнее

Показать сообщение отдельно
Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
08.02.2012, 22:39
Mayonez, какой-то странный вывод программы:
Код
123 456 1w2 5hb 12w yg12w 211w2212w 21w.
12w yg12w 211w2212w
yg12w - не должен быть в выводе, а 1w2 должен быть.

Как я понял, если текст заканчивается на abc123., то учитываем только 6 символов abc123, т.е. точку в рапсчет не берем. А также - если встретится слово aa11bb2233cc - то мы его учитываем, так как оно состоит из тех же символов, что и последнее слово. А слово abc1234 уже не учитываем, так как оно состоит еще и из других символов.
Вот мой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstring>
#include <sstream>
 
using namespace std;
 
int main() {
    cout << "Введите строку" << endl;
 
    string src; // исходный текст
    getline( cin, src );
    src.erase( src.size()  -1, 1); //удалим точку в конце
    string set_of_chars( src, src.find_last_of( ' ' ) + 1 );
    stringstream strm( src ); // связываем поток с исходной строкой
 
    string word;
    while( strm >> word )
        // если в слове только те буквы, которые в последнем слове,то печатем его
        if( word.find_last_not_of( set_of_chars ) == string::npos )
            cout << word << endl;
 
    return 0;
}
Boy... - лучше всегда давать примеры желаемых результатов работы кода, т.е. что имеем на входе и что получаем на выходе. Ведь не совсем понятно, то произвольная последовательность символов, то букв.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru