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

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

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

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

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

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

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

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

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

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
861 / 711 / 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

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

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

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


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

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

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