Hemen Teklif Al
  • Adres : 1. Cadde 1393 Sokak
    No : 7/A Balgat / ANKARA
  • Telefon
    0312 285 72 59
  • E-Posta
    info@basakevyemekleri.com

cstring 예제

C 스타일 문자열로 C String 개체를 사용 하려면 LPCTSTR에 개체를 캐스팅 합니다. 다음 예제에서 CString읽기 전용 C 스타일 null 종료 된 문자열에 대 한 포인터를 반환 합니다. strcpy 함수는 변수 myString에 C 스타일 문자열의 복사본을 넣습니다. 예를 들어 문자 버퍼가 필요한 운영 체제 함수로 작업할 때 CString 내용을 직접 수정하는 것이 적합한 경우도 있습니다. 경우에 따라 직접 수정하려면 CString 데이터의 복사본이 필요할 수 있습니다. 보다 안전한 함수 strcpy_s(또는 유니코드/MBCS 휴대용 _tcscpy_s)를 사용하여 CString 개체를 별도의 버퍼로 복사합니다. 다음 예제와 같이 문자를 안전하게 수정할 수 있는 위치입니다. 예를 들어 SetAt와 같은 CString 메서드를 사용하여 문자열 개체의 개별 문자를 수정할 수 있습니다. 그러나 LPCTSTR 포인터는 일시적이며 CString을 변경하면 유효하지 않습니다. 또한 CString은 범위를 벗어나 자동으로 삭제될 수 있습니다. CString 개체를 사용할 때마다 새 LPCTSTR 포인터를 받는 것이 좋습니다. 변수 인수 함수에서 CString 개체를 사용 하려면 다음 예제와 같이 CSTRING을 LPCTSTR 문자열에 명시적으로 캐스팅합니다. CString 개체에 대한 ReleaseBuffer를 호출하여 문자열 길이와 같은 모든 내부 CString 상태 정보를 업데이트합니다.

CString 개체의 내용을 직접 수정한 후 다른 CString 멤버 함수를 호출하기 전에 ReleaseBuffer를 호출해야 합니다. 일부 C 함수는 가변 적인 수의 인수를 취합니다. 주목할 만한 예는 printf_s입니다. 이러한 종류의 함수가 선언되는 방식으로 인해 컴파일러는 인수의 형식을 확신할 수 없으며 각 인수에서 수행할 변환 작업을 결정할 수 없습니다. 따라서 CString 개체를 가변 수의 인수를 사용하는 함수에 전달할 때 명시적 형식 캐스트를 사용해야 합니다. strcpy_s(또는 유니코드/MBCS 휴대용 _tcscpy_s)에 대한 세 번째 인수는 const wchar_t* (유니코드) 또는 const char*(ANSI)입니다. 위의 예제는 이 인수에 대한 CString을 전달합니다. C++ 컴파일러는 CString을 LPCTSTR로 변환하는 CString 클래스에 대해 정의된 변환 함수를 자동으로 적용합니다. 한 형식에서 다른 형식으로 캐스팅 작업을 정의하는 기능은 C++의 가장 유용한 기능 중 하나입니다.

std:::string에 대한 “채우기” 생성자도 반복된 일련의 문자로 버퍼를 채울 수 있습니다: 이 시점에서 놀라지 않을 것입니다: 두 문자열을 연결하는 것은 + 연산자를 사용하는 사소한 작업입니다. std:::string을 활용하면 런타임 중에 메모리를 동적으로 할당하고 초기화해야 합니다.