|
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
|
|
Как вычленить цифры из строки std::string?22.01.2015, 12:28. Показов 6604. Ответов 47
Метки нет (Все метки)
Кто подскажет как из строки выделить цифры тоесть
имеются строки сссщ1 сссщ2 сссщ3 и так далее вплоть до 999 как вычленить цифры из строки std::string
0
|
|
| 22.01.2015, 12:28 | |
|
Ответы с готовыми решениями:
47
ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri Как работать с отдельными элементами строки std::string?
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 22.01.2015, 14:46 | |
|
Игорь1986, Что? Это как же? Первый find_if находит первую цифру в строке. Дальше в цикле: первый find_if находит первую не цифру после найденной первой цифры, второй находит первую цифру в строке после того индекса который нашел первый find_if.
#include <algorithm> забыл, добавьте.
0
|
|
|
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
|
|
| 22.01.2015, 14:55 [ТС] | |
|
И пожалуй последний вопрос как мне уйти от numbers.push_back(std::string(pos, end));
тоесть обойтись без вектора строк а просто нашли и записали в элемент unsigned short
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 22.01.2015, 14:57 | |
|
Игорь1986, Перевести строку в число -> куда-то добавить/вывести в поток.
0
|
|
|
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
|
|
| 22.01.2015, 14:57 [ТС] | |
|
Хотя еще не ясен вот такой момент [](char c) { return !isdigit(c)
с это моя цифра я прав как понять эту строчку std::find_if(pos + 1, doName.end(), [](char c)
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||||||
| 22.01.2015, 14:58 | |||||||
0
|
|||||||
|
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
|
|
| 22.01.2015, 15:01 [ТС] | |
|
Ну еще круче я ж написал записать просто в переменную цифру
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
| 22.01.2015, 15:03 | |
|
0
|
|
|
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
|
|
| 22.01.2015, 15:10 [ТС] | |
|
Блин как в том фильме ну какой же вы тупой, чесно до сих пор не понимаю вашего кода, плюс незнаю как мне записать найденное число в переменную по коду приведенному ForEveR
Добавлено через 5 минут Похоже я неправильно вам сказал а вы неправильно поняли const std::string test = "bla1 bla2 bla100 bla123 bla500 bla999"; у меня не такая строка а несколько строк bla1 потом bla2 потом bla100 их несколько но цифры в конце обязательно
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 22.01.2015, 15:11 | ||||||
|
Игорь1986, Это лямбда-функция. Можно использовать
0
|
||||||
|
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
|
|
| 22.01.2015, 15:13 [ТС] | |
|
ForEveR я вам благодарен конечно но у меня строка не такая как вы записали
const std::string test = "bla1 bla2 bla100 bla123 bla500 bla999"; у меня не такая строка а несколько строк bla1 потом bla2 потом bla100 их несколько но цифры в конце обязательно вот в принципе ваш код подойдет но я думаю может как то можно проще, дело в том что вы пишите на более высоком уровне для моего понимания
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 22.01.2015, 15:18 | |
|
Игорь1986, Ну так упростите, для своего понимания, в чем проблема? Пример вам дали, дальше вам и флаг в руки.
Не по теме: Это не фриланс, а вы не заказчик, чтобы подстраиваться под ваши условия, не точно описали условие задачи - ваши проблемы.
0
|
|
|
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
|
||||||
| 22.01.2015, 15:18 [ТС] | ||||||
0
|
||||||
|
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
|
|
| 22.01.2015, 15:31 [ТС] | |
|
Здраствуйте кто мне поможет по поводу такого вопроса, у меня есть строка, состоящая из символов и цифр но в конце строки всегда идет число(которое может быть 1 2 3 значным).
Тоесть строка 1-ккк5 строка2-ккп6 строка3-ккп9 строка4-к6кп10 и мне необходимо из строки выделить числа 6 9 10(причем в 4 строке только цифру 10).Поможите с примерчиком
0
|
|
|
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
|
||||||
| 22.01.2015, 16:26 | ||||||
Сообщение было отмечено BRcr как решение
Решение
Игорь1986,
1
|
||||||
|
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
|
||||||
| 22.01.2015, 16:40 [ТС] | ||||||
|
А можно разьяснить эти 2 строки
0
|
||||||
|
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
|
|
| 22.01.2015, 16:45 | |
|
Игорь1986,1) начинаем с самого последнего символа строки к началу и для
каждого проверяем, является ли он числовым символом (вызов isdigit()). 2) если у нас есть цифровые символы (условие num < len-1), то он начинается с индекса num + 1, преобразуем строковое представление числа в int и возвращаем из функции. Если у нас нет цифровых символов, то возвращаем -1.
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
||||||
| 22.01.2015, 19:02 | ||||||
|
Я же тебе написал как сделать для отдельных строк:
0
|
||||||
|
Заблокирован
|
||||||
| 22.01.2015, 20:24 | ||||||
0
|
||||||
|
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
|
|
| 22.01.2015, 20:28 [ТС] | |
|
Всем спасибо
0
|
|
|
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
|
|||||||||||
| 23.01.2015, 09:37 [ТС] | |||||||||||
|
Проверил вылетает на 2 проходе по строке
если сделать так то выводит 0 вместо 10
0
|
|||||||||||
| 23.01.2015, 09:37 | |
|
Как правильно перевести std::wstring в std::string ? Запрошено преобразование от ‘const std::string*’ к нескалярному типу ‘std::string’
Строки через std::string Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки.
Добавлено:
- Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|