Действительно ли возможно возвратить "странные" знаки в случайной работе?

Я хотел бы знать, он possbile, чтобы возвратить "странные" знаки, или скорее, которые важны для языка
Например: \; '
Я хотел бы знать, что, потому что я должен возвратить их одной функцией, это проверяет unicode ценность текстового ключа, и возвращает характер, он - число, мне нужны они также.
Я добираюсь 356|error: пропавшие без вести заканчивающегося 'характера
Линия 356 взглядов как после

return '\';

Идеи?

2

5 ответы

Наклонная черта влево - спасение для специальных символов. Если вы хотите буквальную наклонную черту влево, необходимо избежать ее с другой наклонной чертой влево. Попробуйте:

return '\\';
5
добавлено

Единственная проблема здесь состоит в том, что наклонная черта влево привыкла к символам ESC в опечатке. Например \n является новой строкой, \t горизонтальный счет. В вашем случае видит компилятор \' и размышление, что вы имеете в виду ' характер (это так, у вас мог быть ' характер как так: ' \''). Просто необходимо избежать наклонной черты влево:

return '\\';

Несмотря на это сходство с характером, буквальным с двумя знаками в нем, это не. \\ является escape-последовательностью, которая представляет единственную наклонную черту влево.

Точно так же, чтобы возвратить ' , вы сделали бы:

return '\'';

Список доступных escape-последовательностей дан Таблицей 7:

enter image description here

У вас может быть характер, буквальный содержащий любой характер от набора символов выполнения и получающегося , у случайной работы будет ценность того характера. Однако, если стоимость не помещается в случайную работу , это определит внедрением стоимость.

4
добавлено
@P.K. Посмотрите, что мой редактировать.
добавлено автор Joseph Mansfield, источник
Что относительно того, чтобы возвратить ' тогда?
добавлено автор P.K., источник
Спасибо за ваше время
добавлено автор P.K., источник

Любой характер может быть возвращен.

Все же для некоторых из них, необходимо убежать, это, используя наклонную черту влево : \.

Таким образом для возвращения наклонной черты влево, необходимо возвратиться:

return '\\';
1
добавлено

Получить простое использование наклонной черты влево ' \\'.

В C следующие знаки представляются, используя наклонную черту влево:

  • \a или \A: звонок
  • \b или \B: клавиша Backspace
  • \f или \F: перевод формата
  • \n или \N: новая строка
  • \r или \R: возврат каретки
  • \t или \T: горизонтальный счет
  • \v или \V: вертикальный счет
  • \xhh или \Xhh: шестнадцатеричная комбинация двоичных разрядов
  • \ooo: октальная комбинация двоичных разрядов
  • \0: нулевой символ
  • \": "характер
  • \': 'характер
  • \\: наклонная черта влево (\)

Простая наклонная черта влево путает систему, потому что это ожидает, что характер будет следовать за ним. Таким образом необходимо "избежать" его. Октальные/шестнадцатеричные комбинации двоичных разрядов могут не казаться слишком полезными сначала, но они позволяют вам использовать ANSI избегают кодов.

Если характер после наклонной черты влево не определяет юридическую escape-последовательность, как показано выше, результат - определенное внедрение, но часто характер после наклонной черты влево взят буквально, как будто спасение не присутствовало.

0
добавлено

Если необходимо возвратить такие знаки ("', \, {]... и т.д.) более тогда однажды, необходимо написать функцию, которая избегает этого знаки. Я написал, что функция однажды и это:

function  EscapeSpecialChars (_data) {
            try {
                if (!GUI_HELPER.NOU(_data)) {
                    return _data;
                }
                if (typeof (_data) != typeof (Array)) {
                    return _data;
                }
                while (_data.indexOf("
") > 0) {
                    _data = _data.replace("
", "");
                }
                while (_data.indexOf("\n") > 0) {
                    _data = _data.replace("\n", "\\n");
                }
                while (_data.indexOf("\r") > 0) {
                    _data = _data.replace("\r", "\\r");
                }
                while (_data.indexOf("\t") > 0) {
                    _data = _data.replace("\t", "\\t");
                }
                while (_data.indexOf("\b") > 0) {
                    _data = _data.replace("\b", "\\b");
                }
                while (_data.indexOf("\f") > 0) {
                    _data = _data.replace("\f", "\\f");
                }
                return _data;
            } catch (err) {
               alert(err);
            }

        },

тогда используйте его как это:

return EscapeSpecialChars("\'"{[}]");

Необходимо улучшить функцию. Это работало на меня, но это не избегает всех специальных символов.

0
добавлено
pro.cxx
pro.cxx
3 049 участник(ов)

C/C++ chat 0. Простые вопросы, лабы и о IDE — в чат новичков @supapro 1. Не хамим, не переходим на личности, не вбрасываем утверждения без доказательств 2. No Ads, offtop, flood Объявления о вакансиях и евенты - в лс @AlexFails https://t.me/ProCxx/259155

supapro.cxx
supapro.cxx
1 925 участник(ов)

Чат для тех, кто немного знает C++, простые вопросы по реализации, синтаксису и ide – сюда, а для другого есть: /Главный чат по серьезным вопросам — @ProCxx /Чат по обсуждению всего — @fludpac

C++ Russia
C++ Russia
384 участник(ов)

Сообщество разработчиков C++ в Telegram.

cxx.Дискуссионная
cxx.Дискуссионная
298 участник(ов)

это не двач, общайтесь вежливо; разговор на почти любые темы; Не согласны с баном? В лс @AlexFails, @ivario

C++ для маленьких и тупых
C++ для маленьких и тупых
105 участник(ов)

Лоу левел (по среднему IQ участников) чатик ExtremeCode @extremecode Флудилка @extremecode_rest