CString -> Char array 변환

300x250

 

 

 

프로젝트 문자집합이 Unicode 인경우 ( 기본 )

CString str = _T("Hello, world!");

// CString을 Unicode 문자열로 변환
CW2A pszConvertedAnsiString(str);
// CString의 내부 버퍼에 대한 포인터 가져오기
const char* pszConvertedString = pszConvertedAnsiString;

위의 예제에서는 CString 객체인 str을 Unicode 문자열로 변환하기 위해 CW2A 클래스를 사용했습니다. CW2A 클래스는 CString을 char 배열로 변환해주는 역할을 합니다. 그리고 pszConvertedAnsiString 변수를 통해 변환된 문자열을 얻을 수 있습니다. 이후 pszConvertedString 변수에 변환된 문자열의 포인터를 저장하였습니다.

 

 

 

프로젝트 문자집합이 멀티바이트 인경우

CString str = _T("Hello, world!");

// CString을 multibyte 문자열로 변환
CT2CA pszConvertedAnsiString(str);
// CString의 내부 버퍼에 대한 포인터 가져오기
const char* pszConvertedString = pszConvertedAnsiString;

위의 예제에서는 CString 객체인 str을 multibyte 문자열로 변환하기 위해 CT2CA 클래스를 사용했습니다. CT2CA 클래스는 CString을 char 배열로 변환해주는 역할을 합니다. 그리고 pszConvertedAnsiString 변수를 통해 변환된 문자열을 얻을 수 있습니다. 이후 pszConvertedString 변수에 변환된 문자열의 포인터를 저장하였습니다.

 

 

 

300x250

댓글()

C/C++ CString -> const char* 변환 (유니코드)

300x250

 

 

문자집합은 유니코드 기반 코드 입니다.

 

아래 코드는 CStringA로 형변환 후 GetBuffer()를 사용하여 변환하는 예제입니다.

CString file_name = _T("filename.dat");
CStringA a_file_name = (CStringA)file_name;

const char* ptr_name = a_file_name.GetBuffer();

 

아주 간단 하쥬 ㅋ

 

 

300x250

댓글()

CString 문자열 추출 함수 - Left, Mid, Right

300x250

 

 

 

※ 요약

Left  : CString 개체의 문자열에서 왼쪽을 기준으로 문자열 추출

Mid : CString 개체의 문자열에서 지정한 중간 부분의 문자열 추출

Right : CString 개체의 문자열에서 오른쪽을 기준으로 문자열 추출

 

 

※ 함수 원형 및 설명

CString  Left( int nCount ) const;
//nCount : 왼쪽 기준 추출할 문자의 수
//반환값 : 추출된 문자열을 포함하는 CString 임시 개체

CString  Right( int nCount ) const;
//nCount : 오른쪽 기준 추출할 문자의 수
//반환값 : 추출된 문자열을 포함하는 CString 임시 개체

CString  Mid( int nFirst ) const;
CString  Mid( int nFirst, int nCount ) const;
//nFirst : 추출을 시작할 문자열의 위치
//nCount : 추출할 문자의 수
//반환값 : 추출된 문자열을 포함하는 CString 임시 개체

 

 

※ 예제

#include <atlstr.h>		//CString

int main( )
{
	CString strDate( "2022-06-08" );
	
	CString strYear;
	CString strMonth;
	CString strDay;

	strYear = strDate.Left( 4 );
	strMonth = strDate.Mid( 5, 2 );
	strDay = strDate.Right( 2 );
	
	printf( "%s년 %s월 %s일", strYear, strMonth, strDay );

	return 0;
}

 

 

300x250

댓글()