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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
slawiko
0 / 0 / 0
Регистрация: 22.01.2014
Сообщений: 5
#1

Необходимо найти и записать в стек числа, в состав которых входит 1 символ "*" - C++

22.01.2014, 15:14. Просмотров 484. Ответов 8
Метки нет (Все метки)

Необходимо написать алгоритм поиска в строке чисел. Условие: дан набор символов - строка произвольного размера. "Слова" в строке разделены символами "пробел, точка, запятая, точка с запятой, двоеточие, дефис, восклицательный знак". В некоторых "словах" встречаются цифры. Необходимо найти и записать в стек (стек реализую сам) числа, в состав которых входит 1 символ "*",(Пример: 12*4, *135, 45*) без этого символа.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2014, 15:14     Необходимо найти и записать в стек числа, в состав которых входит 1 символ "*"
Посмотрите здесь:

Необходимо найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!" - C++
Вводится массив строк символов. Необходимо найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки,...

Сколько раз среди данных символов встречается символ "+" и символ "*" - C++
Сколько раз среди данных символов встречается символ "+" и символ "*"

Записать в поле класса "view_" полное имя героя, а не один символ - C++
Добрый день. Нужно записать в переменную "view_" полное имя героя, а не один символ. Как это сделать? Или лучше создать отдельные...

Преобразовать строку, вырезав каждый символ "*" и повторив каждый символ, отличный символ "*" - C++
Здравствуйте,уважаемые форумчане!Помогите пожалуйста с написанием программ-а то завтра сдать уже надо... Препод ставит такие требования: ...

Строки: Определить, сколько в тексте слов, в состав которых входит слог сок - C++
Доброго времени суток. Вот ниже собственно задания. Прошу оставлять комментарии к строкам, ибо страдает объяснение у меня( ...

Дан текст, состоящий не менее чем из пяти слов. Сформировать стек из тех слов, в которых присутствует буква "Е" - C++
Дан текст, состоящий не менее чем из пяти слов. Сформировать стек из тех слов, в которых присутствует буква "Е". Я кое как составил...

Дан текст, состоящий не менее чем из пяти слов. Сформировать стек из тех слов, в которых присутствует буква "Е" - C++
Дан текст, состоящий не менее чем из пяти слов. Сформировать стек из тех слов, в которых присутствует буква "Е". Помогите пожалуйста решить...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
22.01.2014, 15:30     Необходимо найти и записать в стек числа, в состав которых входит 1 символ "*" #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
#include <algorithm>
#include <iterator>
#include <iostream>
#include <string>
#include <stack>
 
int main()
{
    const std::string delimeters(".,;:-! ");
 
    std::string string;
    std::cout << "Input the string: " << std::endl;
    std::getline(std::cin, string);
 
    char *buffer(nullptr);
    char *currentChLexem(strtok_s(const_cast <char *> (string.c_str()), delimeters.c_str(), &buffer));
 
    std::stack <std::string> resultWords;
    while (currentChLexem) {
        std::string currentStrLexem(currentChLexem);
        size_t digitsCount(0), symbolCount(0);
        for (auto currentSymbol : currentStrLexem) {
            digitsCount += isdigit(currentSymbol) ? 1 : 0;
            symbolCount += currentSymbol == '*' ? 1 : 0;
        }
        if (digitsCount + symbolCount == currentStrLexem.length()) {
            resultWords.push(currentStrLexem);
        }
        currentChLexem = strtok_s(0, delimeters.c_str(), &buffer);
    }
    currentChLexem = nullptr;
    buffer = nullptr;
 
    std::cout << "Stack: " << std::endl;
    while (!resultWords.empty()) {
        std::cout << resultWords.top() << ' ';
        resultWords.pop();
    }
    std::cout << std::endl;
 
    std::system("pause");
    return 0;
}
slawiko
0 / 0 / 0
Регистрация: 22.01.2014
Сообщений: 5
22.01.2014, 15:35  [ТС]     Необходимо найти и записать в стек числа, в состав которых входит 1 символ "*" #3
уау. Спасибо огромное за работу, но он мне не очень поможет) таким уровнем языка я еще не владею) Все равно спасибо большое!
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
22.01.2014, 15:37     Необходимо найти и записать в стек числа, в состав которых входит 1 символ "*" #4
Цитата Сообщение от slawiko Посмотреть сообщение
таким уровнем языка я еще не владею)
там все банально..
с помощью strtok разбиваем строку на подстроки с помощью символом разделителей, которые Вы указали.
в текущем слове считаем кол-во цифр и звездочек..и если сумма этих счетчиков равна длине текущего слово(то есть оно полностью состоит из цифр и звездочки), то толкаем его в стек.
только не добавил проверку, что бы звездочка была одна
slawiko
0 / 0 / 0
Регистрация: 22.01.2014
Сообщений: 5
22.01.2014, 15:39  [ТС]     Необходимо найти и записать в стек числа, в состав которых входит 1 символ "*" #5
а если в слове не только цифры и звездочка? Такой вариант тоже подразумевается в условии
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
22.01.2014, 15:44     Необходимо найти и записать в стек числа, в состав которых входит 1 символ "*" #6
slawiko, пример приведите
slawiko
0 / 0 / 0
Регистрация: 22.01.2014
Сообщений: 5
22.01.2014, 15:45  [ТС]     Необходимо найти и записать в стек числа, в состав которых входит 1 символ "*" #7
sjfaskjdjkds 14*5sjqlwkj13
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
22.01.2014, 15:46     Необходимо найти и записать в стек числа, в состав которых входит 1 символ "*" #8
и записать нужно только 14*13?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2014, 15:48     Необходимо найти и записать в стек числа, в состав которых входит 1 символ "*"
Еще ссылки по теме:

Найти те трехзначные числа, в состав которых входят последние три цифры их квадрата - C++
Найти те трехзначные числа, в состав которых входят последние три цифры их квадрата.

Преобразовать строку, удалив каждый символ "*" и повторив каждый символ, отличный от "*" - C++
Дана строка. Преобразовать ее, удалив каждый символ * и повторив каждый символ. Отличный от *. Помогите,пожалуйста,найти ошибку в...

абстрактные типы данных "СТЕК" и "ОЧЕРЕДЬ" - C++
тема:абстрактные типы данных &quot;СТЕК&quot; и &quot;ОЧЕРЕДЬ&quot; Вопросы: 1) разработать программу-клиента,использующую АТД &quot;СТЕК&quot; реализованный на...

Удалить в строке символ "а" (найти ошибку) - C++
строку вводим с клавиатуры, удалить в строке символ &quot;а&quot;. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string.h&gt; using...

Найти причины и способы исправления ошибки "error LNK2019: ссылка на неразрешенный внешний символ" - C++
Добрый день! Подскажите пожалуйста, писала программу. Но при компиляции выдает ошибку: error LNK1120: неразрешенных внешних...


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

Или воспользуйтесь поиском по форуму:
slawiko
0 / 0 / 0
Регистрация: 22.01.2014
Сообщений: 5
22.01.2014, 15:48  [ТС]     Необходимо найти и записать в стек числа, в состав которых входит 1 символ "*" #9
нет. Только 145
Yandex
Объявления
22.01.2014, 15:48     Необходимо найти и записать в стек числа, в состав которых входит 1 символ "*"
Ответ Создать тему
Опции темы

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