Распознавание специальных символов в C ++ - PullRequest
0 голосов
/ 31 января 2019

В настоящее время я пишу программу и хотел бы использовать функцию find () и посмотреть, есть ли в строке символ \.Всякий раз, когда я пытаюсь использовать, например, token.find ("\", 0), я получаю сообщение об ошибке, говорящее, что мне не хватает завершающего символа. Я предполагаю, что это потому, что \ является специальным символом.Гуглил и искал SO способ распознать специальные символы, такие как \, и подумал, что добавление одинарных кавычек вокруг \, то есть "'\" ", может сработать, но это не сработало. Может кто-нибудь, пожалуйста, укажите мне правильное направление илипредложить альтернативу?

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Используйте метод find(), как это, и он будет.Работайте

token.find("\\",0);

Как определено в коммете @Rafael Rotelok

, если вам нужно использовать специальные символы в поисковом запросе, вам сначала нужно экранировать их с помощью '\', поэтомуесли вы ищете '\' char, вы избегаете его с помощью '\', первые '\' имеют особое значение и говорят вашему синтаксическому анализатору, что вы должны взять следующий '\' символ буквально -

0 голосов
/ 31 января 2019

Это потому, что "\" является escape-символом.Чтобы решить эту проблему, измените код на: token.find("\\", 0);

...