Я пишу программу на C++ для решения общей проблемы декодирования сообщений. Часть проблемы требует от меня получить кучу случайных символов, включая «\», и сопоставить их с ключом один за другим.C++ - Экранирование или отключение обратной косой черты в строке
Моя программа отлично работает в большинстве случаев, за исключением того, что когда я читаю символы, такие как «\» из строки, я, очевидно, получаю совершенно другое представление символов (например, «\ 0» дает нулевой символ или «\ просто убегает, когда его нужно рассматривать как символ).
Поскольку я не должен иметь никакого контроля над тем, какие ключи символов включены, я отчаянно пытался найти способ обработки специальных управляющих символов, таких как обратная косая черта, как сам символ.
Мои вопросы в основном это:
Есть ли способ, чтобы включить все специальные символы от рамках моей программы?
Есть ли способ переопределить текущие определения орграфов специальных символов и определить их как нечто другое (например, орграфы, использующие очень редкие ключи)?
Есть ли какой-то неясный метод в классе String, который я пропустил, который может заставить истинный символ в строке читать вместо предопределенной константы?
Я пытаюсь найти решение в течение нескольких часов, но все возможные исправления, которые я нашел, предназначены для других языков.
Любая помощь очень ценится.
«\» является специальным * только внутри строки/charater ** literal *** - не внешние данные, считываемые в: он имеет * отсутствие неотъемлемого значения * в качестве содержимого объекта 'string'! Можно использовать литерал '@" \ verbatim \ string \ "' (и литерал символа '' \\ ''является тривиальным случаем), но еще раз это влияет только на значение * literal *, происходящее в источнике. (Это не исключает того, что особый смысл привязан к «\» во внешнем источнике данных. И действительно, в некоторых источниках, например, в Regexp, все еще имеет смысл.) –
Откуда берется ваша строка? Это жестко? Вход пользователя? Файл IO? – Linuxios
«Я, очевидно, получаю совершенно другое представление персонажа». Это может быть очевидно для вас, но я не знаю, что это значит. Когда вы читаете персонажа, вы получаете персонажа, какая именно проблема? –