2015-01-19 3 views
1

std 라이브러리와 find 함수를 사용하여 주어진 문자열에 이스케이프 된 문자가 있는지 어떻게 알 수 있습니까? 예를 들어문자열에서 이스케이프 된 문자 찾기

:

string line = "bla bla bla \n blabla"; 
bool hasEscapedSequence = (line.find("\n",0) < line.size()); 

find\n 이스케이프되기 때문에 이것은 분명히 작동하지 않습니다. (line.find("\\n",0) < line.size());을 시도해도 아무 것도 변경되지 않는 것 같습니다.

어떻게해야합니까?

+0

이것은 포인터를 사용하여 쉽게 수행 할 수 있습니다. –

+0

@iharob 어떻게? (기본적으로이 "문자열 줄"만 있습니다.) –

+0

적어도이 예제에서 문자열에는 이스케이프 된 문자가 아니라 실제 줄 바꿈 문자가 있습니다. –

답변

6
line.find("\n",0) 

부분 문자열을 찾을 위치의 커서 위치를 반환합니다. 하위 문자열이 없으면 string :: npos가 반환됩니다. 크기와 비교해서는 안됩니다.

bool hasEscapedSequence = (line.find("\n") != string::npos); 
+0

'line.find ("\ n", 0)> -1'입니까? 'line.find ("\ n", 0)! = -1'? –

+0

이것은 C가 아니므로'-1'은 좋은 생각이 아닙니다. 여기서 'npos'를 사용해야합니다. –

+0

게시하기 전에 npos에 맞게 편집되었습니다. 감사 캡틴 Obvlious : P – gmanolache

관련 문제