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

Выделение в консоли слов с одинаковым символом вначале и в конце - C++

Восстановить пароль Регистрация
 
MrRasty
Сообщений: n/a
10.11.2012, 21:06     Выделение в консоли слов с одинаковым символом вначале и в конце #1
С помощью текстового редактора создать файл, содержащий текст, длина которого
пе превышает 1000 символов (длина строки текста не должна превышать
70 символов).
Имя файла должно иметь расширение DAT.
Написать программу, которая:
• выводит текст на экран дисплея;
• по нажатию произвольной клавиши поочередно выделяет каждое из слов текста,
у которых первый и последний символы совпадают;
• определяет количество слов в тексте, у которых первый и последний символы
совпадают.

Порыскав в инете, нашел код, изменил на сколько смог под себя. В итоге выглядит не очень, но 1 и 3 задачу выполняет. Только если в тексте два одинаковых слова, то считает за 1, а выделение даже не представляю как сделать =(

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <fstream>
#include <sstream>
#include <list>
#include <iterator>
#include <string>
 
int main(){
    setlocale(LC_ALL, "Russian");
    std::string buf, tmp;
    std::list<std::string> words;
    std::ifstream fin("text.dat");
    if ( !fin.is_open() ){
        std::cerr << "Ошибка файла!" << std::endl;
        return 1;
    }
    std::cout << std::endl << "Содержимое файла:" << std::endl << std::endl;
    while ( std::getline(fin, buf) ){
        std::cout << buf << std::endl;
        std::istringstream ist(buf);
        while ( ist >> tmp ){
            std::string::size_type pos = tmp.find_last_not_of(".,!@#$%^&*()_-+=;:'?|/<>`~[]{}");
            if ( pos == std::string::npos )
                continue;
            tmp.erase(pos + 1);
            if ( tmp.size() > 1 && *tmp.begin() == *tmp.rbegin() )
                words.push_back(tmp);
        }
    }
    fin.close();
    words.sort();
    words.unique();
    std::cout << std::endl << "Слов с одинаковыми первым и последним символами "  << words.size() << ":" << std::endl << std::endl;
    std::copy(words.begin(), words.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
    std::cout << std::endl; 
    system("PAUSE");
    return 0;
}


Добавлено через 8 часов 21 минуту
плыз, хелп ми, я уже неделю как сдать должен был =(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2012, 21:06     Выделение в консоли слов с одинаковым символом вначале и в конце
Посмотрите здесь:

C++ Выделение слов из массива строк
выделение слов C++
C++ С консоли вводится список слов
Разработать алгоритм и программу для удаления из введенного текста слов, которые начинаются и заканчиваются одним и тем же символом C++
C++ Разработать алгоритм и программу для удаления из введенного текста слов, которые начинаются и заканчиваются одним и тем же символом.
Перенос слов в консоли C++
Дана строка, состоящая из слов, разделенных пробелами, в конце строки - точка C++
Укажите в конце дороги. На пути к подсчитать количество слов C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 17:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru