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

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

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

Дано натуральное число. Найти сумму последних "n" цифр "n" числа, не применяя переменых значений C++
C++ Сколько раз среди данных символов встречается символ "+" и символ "*"
C++ Строки: Определить, сколько в тексте слов, в состав которых входит слог сок
Найти те трехзначные числа, в состав которых входят последние три цифры их квадрата C++
C++ Дан текст, состоящий не менее чем из пяти слов. Сформировать стек из тех слов, в которых присутствует буква "Е"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 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
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 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
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 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
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 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++

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

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

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