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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массив символов (Подсчитать количество слов в строке, при условии, что в качестве разделителя слов используется один или несколько пробелов) http://www.cyberforum.ru/cpp-beginners/thread788968.html
Написать программу, в которой с клавиатуры вводится строка символов. Подсчитать количество слов в строке, при условии, что в качестве разделителя слов используется один или несколько пробелов. Подсчет количества слов в строке оформить в виде функции. Примечание: В качестве вводного материала к задаче поясняется, что: 1) слово представляет собой цепочку любых символов отличных от пробела; 2) в...
C++ Чтение/анализ строки текста Уважаемые господа, помогите советом. Нужно строку текста (из четного кол-ва символов) разбить в на фрагменты по два символа (задать программу для чтения строки). Как реализовать подобное? Комментариями сопровожу по необходимости, заранее спасибо) http://www.cyberforum.ru/cpp-beginners/thread788958.html
Работа с памятью C++
Задали программу написать которая удаляет слова с одинаковым количеством гласных и согласных букв. Слова вводятся через пробел, около 4 штук, а потом выводятся оставшиеся. Проблема в том, что иногда происходит сбой в работе с памятью. Иногда программа работает нормально. Можете подсказать, где ошибка? #include "stdafx.h" #include <iostream> #include <conio.h> #include <stdio.h> #include...
C++ Дописать программу (Заданы два человека – p и q. Ответить, являются ли они родственниками)
Доброго времени суток! Заданы два человека – p и q. Ответить, являются ли они родственниками. (В программе должны быть заданы два массива натуральных чисел mother и father, такие, что mother – номер матери i-го человека, а father – номер его отца, для каждого i, удовлетворяющего неравенствам 0<= i <=n-1.) Прога в рабочем состоянии, но ее необходимо дополнить (или/и исправить), чтобы она...
C++ Генерирование случайных чисел и выборка значения из этих чисел http://www.cyberforum.ru/cpp-beginners/thread788942.html
Здравствуйте, помогите решить задачку. Нужно случайным образом сгенерировать числа от 0..9, 100 раз. Затем из генерированных чисел пользователь должен выбрать число, и в программе должен быть пересчет, сколько раз встретилось это число из 100 раз. Затем мы должны занести данные каждого числа от 0..9 (сколько раз оно встретилось) в массив... Спасибо.... Начало моего задания...... int...
C++ Программа, определяющая для заданного целочисленного объекта определить количество ведущих единиц старшего его байта Здравствуйте, помогите, пожалуйста, выполнить задачу. Нужна программа, позволяющая для заданного целочисленного объекта (int) определить количество ведущих единиц младшего его байта. И, если кто сможет, вторую: Определить указатель на константный указатель на целочисленный объект и указать возможные способы доступа к этому объекту. Заранее благодарю. подробнее

Показать сообщение отдельно
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
18.02.2013, 15:43     Массив строк. Вывести строки, в которых имеется самая длинная цепочка символа «*»
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;
}
 
Текущее время: 14:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru