2016-05-19 5 views
2

Я пытаюсь манипулировать строкой, находя символ \ в строке Find \ inHere. Однако я не могу записать это как вход в test.find('\', 0). Это не сработает и даст мне ошибку «отсутствующий завершающий символ». Есть ли способ исправить test.find('\', 0)?Как найти символ «» в строке?

string test = "Find\inHere"; 

int x = test.find('\', 0); // error on this line 
cout << x; // x should equal 4 
+0

Вы пробовали test.find ('\\', 0) ;? –

ответ

3

\ является символ, используемый для введения специальных символов, например \n строки, \xDB показывает ASCII символ с шестнадцатеричным числом БД и т.д.

Таким образом, для того, чтобы найти этот специальный символ, вы должны избежать его, добавив еще один \, используйте:

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

EDIT: Кроме того, в первой строке, то он не в ней написано «Найти \ принадлежать», но «Найти» и ERR или потому, что \inHere не является специальной инструкцией. Итак, чтобы избежать этого, напишите «Find \\ inHere».

+0

Спасибо! Я не уверен, что вы подразумеваете, чтобы избежать этого, напишите «Find \ inhere». Единственное отличие - это столица H «Найти \ inHere». – Mark

+0

Действительно извините, теперь он отредактирован. Но разница заключается в том, что double \\ избегает символа \, так что он не интерпретирует то, что находится рядом с '\' в качестве инструкции. –

Смежные вопросы