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

Массив строк. Вывести строки, в которых имеется самая длинная цепочка символа «*» - C++

Восстановить пароль Регистрация
 
Pe4eNbKo_O
 Аватар для Pe4eNbKo_O
22 / 22 / 0
Регистрация: 15.10.2012
Сообщений: 94
18.02.2013, 11:29     Массив строк. Вывести строки, в которых имеется самая длинная цепочка символа «*» #1
Написать программу, в которой с клавиатуры вводится до 10 символьных строк. Вывести строки, в которых имеется самая длинная цепочка символа «*». В каждой такой строке оставить только по одному символу «*». Нахождение и удаление символов оформить в виде функций.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2013, 11:29     Массив строк. Вывести строки, в которых имеется самая длинная цепочка символа «*»
Посмотрите здесь:

Номер строки, в которой самая длинная серия одинаковых злементов C++
Найти номер строки, в которой находится самая длинная последовательность C++
Найдите индексы строки и столбца для элемента, с которого начинается самая длинная серия C++
C++ номер строки, в которой находится самая длинная серия одинаковых элементов
C++ Массив строк в с++. Вывести строки, в которых есть цифры. В каждой строке удалить все цифры
Сформировать строки таким образов, что бы первой была самая короткая строка, а последней самая длинная C++
C++ Найдите индексы строки и столбца для элемента, с которого начинается самая длинная серия.
C++ Двумерный массив: строка, в которой находится самая длинная серия одинаковых элементов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
18.02.2013, 15:43     Массив строк. Вывести строки, в которых имеется самая длинная цепочка символа «*» #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
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <string>
 
int chain(std::string& s) {
    typedef std::string::size_type str_size;
    str_size i = 0;
    str_size length = 0;
    while (i != s.size()) {
        if (s[i] == '*') {
            str_size j = i;
            while (j != s.size() && s[j] == '*')
                ++j;
            if (j - i > length)
                length = j - i;
        }
        ++i;
    }
    return length;
}
 
std::string exclude(std::string& s) {
    //std::string buf;
    typedef std::string::size_type str_size;
    str_size i = 0;
    while (i != s.size()) {
        if (s[i] == '*') {
            str_size j = i;
            while (j != s.size() && s[j] == '*')
                ++j;
            if (i != j)
                s.erase(i + 1, j - i - 1);
        }
        ++i;
    }
    return s;
}
 
int main()
{
    std::string s1, s2, news1, news2;
    std::cout << "enter first string" << std::endl;
    std::getline(std::cin, s1);
    int lens1 = chain(s1);
    news1 = exclude(s1);    
    std::cout << "max length of chain * is " << lens1 << std::endl << "new string: " << news1 << std::endl;
    std::cout << "enter second string" << std::endl;  // и так со всеми строками
    std::getline(std::cin, s2);
    int lens2 = chain(s2);
    news2 = exclude(s2);
    std::cout << "max length of chain * is " << lens2 << std::endl << "new string: " << news2 << std::endl;
    system("PAUSE");
    return 0;
}
Yandex
Объявления
18.02.2013, 15:43     Массив строк. Вывести строки, в которых имеется самая длинная цепочка символа «*»
Ответ Создать тему
Опции темы

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