Post List

2014년 12월 25일 목요일

MFC CString Split() 구현

CString 의 특정 Char(문자)를 기준으로 나누어 CString 배열을 만들어주는 기능이다.

문자열 내의 특정 문자가 몇개인지를 계산해주는 함수도 같이 구현하였다.

CString * Ls_Token = Split(Ls_FullString, '-', Li_NumToken);

와 같은 식으로 사용 한 후

delete [] Ls_Token;

으로 메모리 해제해 주면 된다.

int GetCountChar(CString Ps_Str, TCHAR Pc_Char)
{
    int Li_Count = 0;
    for(int i = 0; i < Ps_Str.GetLength(); i++)
    {
        if(Ps_Str[i] == Pc_Char) Li_Count++;
    }
    return Li_Count;
}

CString* Split(CString Ps_Str, TCHAR Pc_Separator, int& Ri_Length)
{
    Ri_Length = GetCountChar(Ps_Str, Pc_Separator) + 1;
    if (Ps_Str[0]                      == Pc_Separator) Ri_Length--;
    if (Ps_Str[Ps_Str.GetLength() - 1] == Pc_Separator) Ri_Length--;
    CString* Rsa_Str = new CString[Ri_Length];

    int Li_Count = 0;
    CString Ls_Token;

    for (int i = 0; i < Ri_Length; i++)
    {
        AfxExtractSubString(Ls_Token, Ps_Str, Li_Count, Pc_Separator);
        Rsa_Str[Li_Count++] = Ls_Token;
    }

    return Rsa_Str;
}



댓글 없음:

댓글 쓰기