Click here to Skip to main content
15,867,835 members
Articles / Programming Languages / C++
Article

String Tokenizer Class in C++

Rate me:
Please Sign up or sign in to vote.
3.30/5 (17 votes)
2 Nov 2001CPOL 95.5K   1.2K   25   8
As C++ doesn't have Java Equivalent StringTokenizer class, I have implemented the class for my own and helps the beginners

Introduction

This class helps the user to tokenize the Long string by specifying delimiter. I thought this will be helpful to the programmers who are at beginning stage.

Code Listing

// Constructor that takes 2 arguments 
// first argument is of string type that to be tokenized. 
// second argument is of string type that is used as token separator 
// and default separator is space 
StringTokenizer::StringTokenizer(CString str,CString sep=" ") 
{ 
    index=0; 
    count=0; 
    CString str1=""; 
    for (int i=0;i<str.GetLength() && sep.GetLength()==1;i++) 
    { 
        if(str.GetAt(i)==sep.GetAt(0)) 
        { 
            elements.Add(str1); 
            str1=""; 
        } 
        else 
        { 
            str1+=str.GetAt(i); 
        } 
    } 
    elements.Add(str1); 
    count=elements.GetSize (); 
} 
// Method is used to fetch the tokens. 
CString StringTokenizer::getNextElement() 
{ 
    index++; 
    if(index==count) 
    { 
        throw CString("Index out of Bounds"); 
    } 
    return elements.GetAt(index-1); 
} 
//method used to fetch the count of tokens from the string 
int StringTokenizer::countElements() 
{ 
    return count; 
} 

//fetch the elements at given position 
CString StringTokenizer::elementAt(int index) 
{ 
    if(index>=count ||index<0) 
    { 
        throw CString("Index out of Bounds"); 
    } 
    else 
        return elements.GetAt(index); 
} 

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
India India
Hi
I am from South India (Hyderabad). Basically I am lover of mathematics which made me to enter computer field. I started learning computer sciences with language B.B.C Basic.
Later I changed my track to C, C++ and Java.

Comments and Discussions

 
SuggestionSimpler way using CString::Tokenize Pin
Elimad3-Oct-14 20:56
Elimad3-Oct-14 20:56 
CString::Tokenize() does this for you.
GeneralMy vote of 3 Pin
Manikandan106-Jun-14 20:58
professionalManikandan106-Jun-14 20:58 
GeneralMy vote of 1 Pin
idursun21-Jan-09 19:58
idursun21-Jan-09 19:58 
Generalprecompiled header directive Pin
bendigi15-Oct-04 9:43
bendigi15-Oct-04 9:43 
GeneralRe: precompiled header directive Pin
Koundinya11-Dec-04 11:14
Koundinya11-Dec-04 11:14 
Generalstl simplification Pin
TemplMetaProg3-Jul-02 11:03
TemplMetaProg3-Jul-02 11:03 
GeneralRe: stl simplification Pin
Boniolopez17-May-04 7:58
Boniolopez17-May-04 7:58 
GeneralRe: stl simplification Pin
Koundinya11-Dec-04 11:15
Koundinya11-Dec-04 11:15 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.