문자열 내의 특정 문자가 몇개인지를 계산해주는 함수도 같이 구현하였다.
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;
}
{
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;
}
댓글 없음:
댓글 쓰기