My CPP Notes

My CPP Notes

C++ Notes -

Following to are from My Blogger’s Codesspot threads posted long time ago. Been re-written via Markdown Text and using StackEditPro

My First Generosity - split function

November 27, 2005

Here My first try to put some useful VC++ code…

This is function which similar to VB Split command more or less of STRTOK with output as an array.

If need include this as I am using CString for an array out.

//#include <afx.h> 
//#include <afxcmn.h>

Function here follows.

CString *split(CString str,char delimiter)
{
    long len=0;
    
    if(str.IsEmpty())
        return NULL;
    len=str.GetLength();
    
    CString *st;
    st=new CString[len];
    int c=0;
    while(1)
    {
        int pos=str.Find(delimiter);
        if(pos!=-1)
        {
            st[c]=str.Left(pos);
            str.Delete(0,pos+1);
        }
        else
        {
            st[c]=str;
            break;
        }
        c++;
    }
    
    return st;
}

This function can be used with different delimiters, as an example here below:

CString strFulltext = "Hello World this is Abhay Menon";
CString *strArry = split(strFulltext,' ');

output like:

strArray[0]="Hello"
strArray[1]="World"
strArray[2]="this"
strArray[3]="is"
strArray[4]="Abhay"
strArray[5]="Menon"

Well hope you like this piece of code…

Regards Abhay M


Split function with std::List

January 16, 2014

In Addition to my earlier split function a more optimized method using the std::List.
list splitList(CString str,char delimiter)
{
 long len=0;

 if(str.IsEmpty())
  return NULL;

 len=str.GetLength();

 list st;
 int c=0;
 while(1)
 {
  int pos=str.Find(delimiter);
  if(pos!=-1)
  {
   st.push_back(str.Left(pos));
   str.Delete(0,pos+1);
  }
  else
  {
   st.push_back(str);
   break;
  }
  c++;
 }

 return st;
}

Comments

Popular posts from this blog

Split function with std::List

Welcome to StackEditPro