beautypg.com

An example function - split a line into words – HP Integrity NonStop H-Series User Manual

Page 137

background image

Click on the banner to return to the user guide home page.

©Copyright 1996 Rogue Wave Software

An Example Function - Split a Line into Words

Obtaining the Sample Program

In this section we will illustrate the use of some of the string functions by defining a function to
split a line of text into individual words. We have already made use of this function in the
concordance example program in

Chapter 9

.

There are three arguments to the function. The first two are strings, describing the line of text
and the separators to be used to differentiate words, respectively. The third argument is a list of
strings, used to return the individual words in the line.

void split
(string & text, string & separators, list & words)
{
int n = text.length();
int start, stop;

start = text.find_first_not_of(separators);
while ((start >= 0) && (start < n)) {
stop = text.find_first_of(separators, start);
if ((stop < 0) || (stop > n)) stop = n;
words.push_back(text.substr(start, stop - start));
start = text.find_first_not_of(separators, stop+1);
}
}

The program begins by finding the first character that is not a separator. The loop then looks for
the next following character that is a separator, or uses the end of the string if no such value is
found. The difference between these two is then a word, and is copied out of the text using a
substring operation and inserted into the list of words. A search is then made to discover the
start of the next word, and the loop continues. When the index value exceeds the limits of the
string, execution stops.

This manual is related to the following products: