Функция, которая удаляет html цвет из строки с помощью sscanf - PullRequest
0 голосов
/ 26 января 2020

У меня большая дилемма, как я могу выполнить условие, чтобы удалить этот тип цвета из моей строки (например: {dd2e22}), используя sscanf, что очень весело c Я хочу использовать. Таким образом, предоставленная строка будет произвольным текстом:

Te{dd2e22}xt is {3f53ec}here

Условие, которое я пробовал

sscanf(buf,"%[^\{[0-9a-fA-F]{6,8}\}]s",output);

Это не работает, в результате получается только первый символ "T".

Ответы [ 2 ]

0 голосов
/ 26 января 2020

результат - это только первый символ "T".

Ну, следующий символ - это 'e', ​​который соответствует набору \{[0-9a-fA-F]{6,8}\ и, таким образом, не соответствует инвертированному набору указано '^'.

Эта задача может быть выполнена с помощью регулярного выражения. Стандартная библиотека предоставляет вам соответствующие инструменты в заголовке <regex>.

0 голосов
/ 26 января 2020

Попробуйте использовать спецификатор формата:
"%*6X"

Анализ:
% - запускает спецификатор формата.
* - говорит scanf не назначать поле переменной .
6x - говорит, что поле состоит из 6 шестнадцатеричных цифр.

См. scanf спецификатор формата

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...