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

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

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

Удалить из строки слова,длина которых меньше заданной,решите пожалуйста,за ранее спасибо)))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.12.2013, 14:05
Ответы с готовыми решениями:

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

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

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

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

4
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
834 / 492 / 325
Регистрация: 29.12.2009
Сообщений: 1,106
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
866 / 716 / 304
Регистрация: 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
1 / 1 / 0
Регистрация: 12.09.2013
Сообщений: 45
29.12.2013, 16:43  [ТС] 5
Всем большое спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.12.2013, 16:43

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

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


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

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

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