cstring find 예제

문자열의 길이를 찾으려면 CString 개체의 문자 수를 반환하는 CString::GetLength() 메서드를 사용할 수 있습니다. 이 첫 번째 예제에서는 문자열을 선언 한 다음 문자열 표준 라이브러리 find 함수를 사용하여 부모 문자열에서 하위 문자열의 첫 번째 문자의 위치를 가져옵니다. 이것은 하위 문자열을 찾는 가장 똑바른 방법이며 표준 라이브러리 문자열을 사용하는 경우이 방법을 조언할 것입니다. 두 개의 해당 문자가 같지 않은 것을 발견하고 문자열 간의 비교 결과로 비교 결과를 수행합니다. 참고 :이 튜토리얼은 macOS (애플 LLVM 버전 8.1.0 (clang-802.0.42))에 clang을 사용하여 컴파일됩니다. 그러나 내 코드 예제에서 gcc를 사용하여 C ++를 컴파일하는 것을 볼 수 있습니다. 나는 실제로 내 시스템에 GCC가 설치되어 있지 않으며 Apple은 GCC에서 다시 지원을 위해 clang에 대한 모든 명령을 연결했습니다. 예제의 코드는 Linux 또는 Windows에서 테스트되지 않았지만 이 코드는 Linux 또는 Windows/Linux 하위 시스템과 같은 gcc가 있는 환경에서도 실행되어서는 안 됩니다. Tokenize 함수는 대상 문자열에서 다음 토큰을 찾습니다.

pszTokens의 문자 집합은 찾을 토큰의 가능한 구분 기호를 지정합니다. 토큰화에 대한 각 호출에서 함수는 iStart에서 시작하여 선행 구분 기호를 건너뛰고 현재 토큰을 포함하는 CStringT 개체를 반환합니다. iStart의 값은 종료 구분 기호 문자 다음의 위치로 업데이트되거나 문자열의 끝에 도달하면 -1로 업데이트됩니다. iStart를 사용하여 다음 토큰을 읽을 문자열의 위치를 추적하기 위해 tokenize에 대한 일련의 호출을 통해 대상 문자열의 나머지 부분에서 더 많은 토큰을 나눌 수 있습니다. 토큰이 더 이상 없는 경우 함수는 빈 문자열을 반환하고 iStart는 -1로 설정됩니다. 생성자는 입력 데이터를 새 할당된 저장소에 복사하므로 메모리 예외가 발생할 수 있음을 알고 있어야 합니다. 이러한 생성자 중 일부는 변환 함수역할을 합니다. 이를 통해 CStringT 개체가 예상되는 LPTSTR을 대체할 수 있습니다.

CStringT(LPCSTR lpsz): ANSI 문자열에서 유니코드 CStringT를 생성합니다. 아래 예제와 같이 이 생성기를 사용하여 문자열 리소스를 로드할 수도 있습니다. 문자열 개체 자체가 Format의 매개 변수로 제공되면 호출이 실패합니다. 예를 들어, 다음 코드는 예기치 않은 결과를 발생 합니다. 네 당신이 맞아요. std::string::find 반환 npos (size_t에 대 한 최대값) 아무것도 찾을 경우. 위의 예제에서는 하위 문자열이 인덱스 0으로 발견된 경우 사용자가 실패한 if 문에 빠지지 않았는지 확인하고 싶었습니다. 이것이 반환 값을 확인하는 유일한 이유입니다. 내가 설명 할 수있는 또 다른 옵션은 if 문 외부에서 찾기 호출을 수행하는 것입니다.

CStringT & TrimRight (PCXSTR pszTargets) 버전은 검색할 모든 다른 문자를 포함하는 null 종료 된 문자열을 허용합니다. CStringT 개체에서 해당 문자의 모든 복사본을 제거합니다. 문자열의 끝에서 시작하여 앞쪽으로 작동합니다. 대상 문자열에 없는 문자를 찾거나 CStringT의 문자 데이터가 부족할 때 중지됩니다.

Share Button
Posted in Uncategorized.