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

Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
LaSkReN
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 33
15.03.2013, 10:05     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #1
Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2013, 10:05     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке
Посмотрите здесь:

Упорядочить в каждой строке текста слова в алфавитном порядке C++
Из заданного текста выбрать и напечатать те символы (продолжение в теме) C++
C++ В заданной строке выбрать те слова,в которых первая буква этого слова встречается еще хоть один раз
Из текста удалить все слова заданной длины,начинающиеся с согласных букв C++
C++ Определить, являются ли слова в каждой строке текста упорядоченными по алфавиту
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
15.03.2013, 10:21     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #2
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
#include <iostream>
#include <cstring>
 
int main ()
{
    std::string string;
    std::cout << "Input string: ";
    std::getline(std::cin, string);
    string.insert(string.end(), ' ');
 
    int length;
    std::cout << "Length of words: ";
    std::cin >> length;
 
    std::string word;
    for (int i = 0; i < string.length(); i++) {
        if (string[i] != ' ') {
            word += string[i];
        } else {
            if (length == word.length())
                std::cout << word << std::endl;
            word.clear();
        }
    }
 
    return 0;
}
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
15.03.2013, 10:28     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #3
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
#include <conio.h>
#include <stdio.h>
#include <string>
#include <sstream>
#include <fstream>
#include <boost/regexp.h> // ?
int getInt(string &in)
{
    int res;
    stringstream er;
    getline(cin, in);
    er << in;
    er >> res;
    return res;
}
 
main ()
{
    int n;
    string s, str;
    vector<string> words;
    n = getInt(s);
    string exp;
    exp = "(?<=\b)[A-Za-zА-Яа-я]{"+ n + "}(?=\b)";
    while (!file.eof())
    {
        // тут сканируем строку регулярным выражением
        ...
        // если нашли строку
        words.insert(str);
    }
    // вывести вектор words на экран
}
LaSkReN
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 33
15.03.2013, 10:30  [ТС]     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #4
Слушай а не мог бы тоже самое только без std:: и материться на getline
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
15.03.2013, 10:32     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #5
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
C++
1
2
3
4
5
        ...
        if (string[i] != ' ') {
            word += string[i];
        }
        ...
ну не факт, что между слов стоят пробелы.
LaSkReN
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 33
15.03.2013, 10:44  [ТС]     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #6
XRuZzz слушай у меня на пол программы твоей материться=) на if, int getInt(string &in), words. =)) почему так?=) попроще способа это сделать есть или нету?
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
15.03.2013, 10:51     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #7
ну вообще да если добавить условия, то нормальное решение.

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

решение Ev[G]eN более готовое, чем моё, но я считаю, что регулярные выражения тут применять изящнее, чем перечислять символы, которые могут граничить с словом
LaSkReN
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 33
15.03.2013, 10:55  [ТС]     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #8
ааа=) я то думал готовое =)

Добавлено через 2 минуты
ну это да=) только почему на стринг у матерится
=)
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
15.03.2013, 11:06     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #9
ну да наверно лучше так

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
#include <conio.h>
#include <stdio.h>
#include <string>
#include <vector>
#include <iostream>
#include <sstream>
#include <fstream>
//#include <tr1>
//#include <boost/regex.h>
using namespace std;
 
int main ()
{
    string s, str, strIn;
    vector<string> words;
    getline(cin, strIn);
    string exp;
    exp = "(?<=\b)[A-Za-zА-Яа-я]{" + strIn + "}(?=\b)";
    cout << exp;
//   while (!file.eof())
//  {
        // тут сканируем строку регулярным выражением
        //...
        // если нашли строку
        words.push_back(str);
//    }
    // вывести вектор words на экран
}
Добавлено через 2 минуты
я просто не в курсе какую библиотеку вы сможете подключить (и сможете ли вообще?) для регулярных выражений
LaSkReN
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 33
15.03.2013, 11:07  [ТС]     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #10
слушай а не мог бы полностью написать программу я просто только начал изучать программирование на 1 курсе ток началось
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
15.03.2013, 11:21     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #11
Цитата Сообщение от LaSkReN Посмотреть сообщение
слушай а не мог бы полностью написать программу я просто только начал изучать программирование на 1 курсе ток началось
совершенно правильное утверждение.

ты представь, что ты сделал 200 листов дипломной работы и на каждом листе есть формулы, приносишь преподу, а он говорит "я вам поставлю за диплом 5 если каждую формулу вы напишите в скобках", но поскольку уже все сроки прошли у тебя остался всего 1 час, чтоб добавить эти скобки, + 45 минут вы потратите чтоб распечатать диплом.

Так вот с помощью регулярных выражений у тебя будет шанс успеть. Твоя задача из той же оперы.
LaSkReN
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 33
15.03.2013, 11:23  [ТС]     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #12
если честно то я не понял =) понял что за 15 мин надо скобки на 200 страницах проставить и все=)
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
15.03.2013, 11:29     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #13
что ты не понял?
LaSkReN
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 33
15.03.2013, 11:30  [ТС]     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #14
ничего=) можешь полностью программу написать я переделал уже до того что б все равботало и он только выводит текст что я вбил а как сделать так что бы выводилось все слова меньше 5 букв
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
15.03.2013, 11:33     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #15
для начала нужно определиться кто будет пользователем твоей программы, для чего ему нужно выделять слова в тексте меньше 5 символов, что из себя представляет текст.

Добавлено через 46 секунд
то есть понять предметную область
LaSkReN
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 33
15.03.2013, 11:36  [ТС]     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #16
совершенно любой текст программа создается для изучения функций и понятия работы строк и работе с ними показать надо преподователю любой набор букв с пробелами и ввести кол-во символов и вывод слов по строчно

Добавлено через 1 минуту
ввод с клавиатуры при старте программы
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
15.03.2013, 11:37     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #17
то есть ты хочешь меня заставить писать программу, которой никто не будет пользоваться?
LaSkReN
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 33
15.03.2013, 11:38  [ТС]     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #18
это программы будет использоваться в колледже для обдучения и наглядного примера работы в си ++ и функций строк
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
15.03.2013, 11:38     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #19
сколько строк должно быть в тексте? считывается ли текст из файла?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2013, 11:40     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке
Еще ссылки по теме:

C++ Выбрать из текста все слова одинаковой длины
C++ Напечатать все слова, которые встречаются в строке по одному разу
C++ Выбрать из заданного текста все слова, содержащие заданную комбинацию символов

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

Или воспользуйтесь поиском по форуму:
LaSkReN
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 33
15.03.2013, 11:40  [ТС]     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке #20
ручной ввод при запуске данной программы через си++ кол-во строк 1 строка и несколько слов разделенных пробелом
Yandex
Объявления
15.03.2013, 11:40     Выбрать из заданного текста слова заданной длины и напечатать их по одному на каждой строке
Ответ Создать тему
Опции темы

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