가끔 프로그램을 하다가 보면 문자열 나눌일이 있다.
Java 나 C# 같은 경우 split 라는 메소드가 있다.
사용하기 짱 편하다
MFC 에는 그런 기능이 없다
그래서 그냥 내가 만들어 쓰기로 했다;;;;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | int splitString(CString str, CString var, CStringArray &strs) { int count = 0; CString tempStr = str; int length = str.GetLength(); while (length) { int find = tempStr.Find(var); if (find != -1) { CString temp = tempStr.Left(find); int varLen = _tcslen(var); tempStr = tempStr.Mid(find + varLen); count++; } else { strs.Add(tempStr); length = 0; } } return count; } |
실행 소스
1 2 3 4 5 6 7 8 9 10 11 12 13 | CString temp = _T( "test,,test1,,test2" ); CStringArray str; int count = splitString(temp, _T( ",," ), str); if (count) { for ( int i = 0 ; i < count ; i++) { ::AfxMessageBox(str.GetAt(i)); } } |
위 방법대로 실행 시키면 CStringArray 로 추출이 된다.
개인적으로 메모리 선언하고 해제하고 하는 방식은 싫어해서 그냥 MS 에서 제공하는 것으로 사용을 한다.
참고사항 : Visual Studio 2008 C++ 버전으로 만들어 놓은것
'Program > MFC' 카테고리의 다른 글
디렉토리 생성(하위디렉토리 생성) (0) | 2015.02.09 |
---|---|
Dialog 프로그램 시, Argument 받는 방법 (0) | 2014.12.02 |
폴더 유/무 확인하도록 하는것 (0) | 2014.12.01 |