Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
snezhok@
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 45
#1

Удаление из строки слов, длина которых меньше заданной - C++

28.12.2013, 14:05. Просмотров 1309. Ответов 4
Метки нет (Все метки)

Удалить из строки слова,длина которых меньше заданной,решите пожалуйста,за ранее спасибо)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2013, 14:05
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Удаление из строки слов, длина которых меньше заданной (C++):

Из заданной строки удалить слова, длина которых меньше указанной.
Помогите написать программу которая из заданной символьной строки удаляет слова...

Вывести все слова из строки длина которых меньше заданной
Составить программу посимвольной обработки,без всяких функций из strin.h(!!!),...

Удалить из массива все серии длина которых меньше заданной
Дан массив, состоящий из n элементов. Назовем серией группу подряд идущих...

Определить количество слов в строке, длина которых меньше заданного числа К
Помогите пожалуйста с задачкой... ПЛИЗ... Дана строка текста, в которой слова...

Сформировать стек всех слов, длина которых меньше либо равна 5
Помогите с программой на c++. Дан текст, состоящий не менее чем из 7 слов....

Если длина строки меньше заданной, то повторить ввод
есть массив из длины 21 елемент, надо зделать проверку, если длина > заданой...

4
volotomon
1 / 1 / 2
Регистрация: 09.06.2013
Сообщений: 10
28.12.2013, 19:56 #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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//delete word length small zadanoy
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string words;
    int length;
    cout << "enter words:\n";
    getline(cin, words);
    cout << "enter length:\n";
    cin >> length;
    int wlen = words.length();
    int space_position = -1, numder_letter = 0;
    for(int j = 0; j < wlen; j++)
    {
        numder_letter++;
        if(words.at(j) == ' ')
        {
            numder_letter--;           //minus space
            if(numder_letter < length)
            {
                words.erase(space_position + 1, numder_letter);
                wlen = words.length();
                j = space_position + 1;
            }
            numder_letter = 0;
            space_position = j;
        }
        if(j == wlen - 1)
        {
            if(numder_letter < length)
            {
                words.erase(space_position + 1, numder_letter);
            }
        }
    }
    cout << words << endl;
    return 0;
}
Работает только если слова разделены пробелом.
0
MicM
824 / 483 / 324
Регистрация: 29.12.2009
Сообщений: 1,106
Завершенные тесты: 1
28.12.2013, 20: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
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <string>
#include <cctype>
using std::string;
using std::cout;
using std::cin;
using std::endl;
 
int main()
{
    string str("ab abc abcdefghi abcd abcdef abc abcd abcdefg a ab abcdefg abcdef abcdefghijk");
    int n;
    cout <<str <<endl;
    cout <<"Length: ";
    cin >> n;
    unsigned int i = 0;
    string tmp;
    while (i<str.length())
    {
        if (isalpha(str[i]))
        {
            tmp.erase(0,tmp.size());
            while (i<str.length() && isalpha(str[i]))
            {
                tmp.append (1,str[i]);
                ++i;
            }
            if (tmp.size()<n)
            {
                str.erase(i-tmp.size(),tmp.size());
                i-=tmp.size();
            }
        }
        else ++i;
    }
    i = 0;
    while (i<str.length()-1)
    {
        if (str[i]==' ' && str[i+1]==' ')
            str.erase (i,1);
        else ++i;
    }
    cout <<str <<endl;
    return 0;
}
0
XRoy
860 / 710 / 305
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
28.12.2013, 21:22 #4
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
#include <iostream>
#include <sstream>
#include <string>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    string str ("avdblk lkdnglkfnb nglfnblfgngl rgmdkmdgjvndnvk dnvkdfjnvk njbfnjn ndfjknbjkfn ngjkrdnbkjdnkjbnfkdjn gnjngkjrnkdb lkdnbklfnblfnkl dnnjgn nngndlnbljgf nkbndlnblk");
    string subline, output;
    unsigned int length;
    stringstream split(str);
    cout << "Length: ";
    cin >> length;
 
    output.clear();
    while (split >> subline)
        if (subline.length() >= length)
            output.append(subline).append(" ");
            
    cout << output << endl;
 
    return 0;
}
0
snezhok@
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 45
29.12.2013, 16:43  [ТС] #5
Всем большое спасибо
0
29.12.2013, 16:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2013, 16:43
Привет! Вот еще темы с решениями:

Напечатать все строки, длина которых меньше заданного числа
Прошу помочь с небольшой задачкой: Работа с текстовыми файлами. Дан...

Перепишите из входного файла в выходной только те строки, длина которых меньше 70
Помогите пожалуйста с решением задачки. Перепишите из входного файла в...

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

Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину.
Собственно вот проблема..Мне помогали писать данную программу но она что-то все...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru