본문 바로가기
프로그래밍/MFC (C++)

MFC ] CString 문자열 파싱하는 여러 방법

by eteo 2022. 7. 14.

 

2022.07.14 - [프로그래밍/MFC (C++)] - MFC ] stringstream 사용하여 문자열 파싱하기

 

일전에 CString 타입을 string 타입으로 바꾸고 stringstream을 사용해서 파싱하는 방법에 대한 글을 적었는데 다른 방법도 있다.

 

 

1. AfxExtractSubString 을 사용하는 방법

int lineCount;
lineCount = result.Replace('\n',',');

for (int i = 0; i < lineCount; i++)
{
	CString tmpID, tmpName, tmpAuthor, tmpPrice, tmpOther;
	AfxExtractSubString(tmpID, result, 5 * i + 0, ',');
	AfxExtractSubString(tmpName, result, 5 * i + 1, ',');
	AfxExtractSubString(tmpAuthor, result, 5 * i + 2, ',');
	AfxExtractSubString(tmpPrice, result, 5 * i + 3, ',');
	AfxExtractSubString(tmpOther, result, 5 * i + 4, ',');
	
	m_list.InsertItem(i, tmpID);
	m_list.SetItem(i, 1, LVIF_TEXT, tmpName, NULL, NULL, NULL, NULL);
	m_list.SetItem(i, 2, LVIF_TEXT, tmpAuthor, NULL, NULL, NULL, NULL);
	m_list.SetItem(i, 3, LVIF_TEXT, tmpPrice, NULL, NULL, NULL, NULL);
	m_list.SetItem(i, 4, LVIF_TEXT, tmpOther, NULL, NULL, NULL, NULL);
}

 

AfxExtractSubString(분리한 문자열을 담을 변수, 분리할 대상 문자열, 분리할 문자의 위치 인덱스, '분리할 인자');

 

 

 

 

 

 

2. .Left, .Right, .Mid 를 사용하는 방법

 

CString Left(int nCount) : 문자열의 왼쪽 부터 카운트 만큼 추출

 

CString Right(int nCount) : 문자열의 오른쪽부터 카운트만큼 역순으로 추출

 

CString Mid(int nFirst) : 문자열 기준위치부터 마지막까지 추출

 

CString Mid(int nFirst, int nCount) : 문자열 기준위치부터 카운트 만큼 추출