sscanf - возможно ли спарсить

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Слива
Сообщения: 133
Зарегистрирован: 19 мар 2016, 10:15

25 ноя 2017, 10:11

Sunduk, вот до чего техника дошла:

Код: Выделить всё

sscanf(text, "%*s %1[A-La-lO-Zo-z5-9]", result);
И маленькую надо "l" писать, а не большую "L". :D
Аватара пользователя
Din666
Сообщения: 51
Зарегистрирован: 17 июл 2015, 13:25
Откуда: Moscow
Контактная информация:

28 ноя 2017, 11:07

ну вообще-то в ТЗ четко прописано - спарсить значение из строчки формата "какое-то_слово пробел 8символы" , про валидацию это вы сами придумали )) можно еще для надежности проверить что вернул sscanf (должно быть = 2 если не ошибаюсь)

Для Сливы: %1[8]%14[A-La-LO-Zo-z5-9]" - это по сути упрощенная регулярка: %1[8] - восмерка повторяющаяся 1 раз, %14[....] - 14 раз повторяются указанные символы.
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

28 ноя 2017, 13:22

Din666 писал(а):про валидацию это вы сами придумали ))
Sunduk писал(а):Как заставить sscanf проверять первый символ на наличие 8?
А разве слово "проверить" не говорит о валидации?
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить