Finding character in String in Vector.

Posted by SoulBeaver on Stack Overflow See other posts from Stack Overflow or by SoulBeaver
Published on 2010-04-19T09:08:29Z Indexed on 2010/04/19 9:13 UTC
Read the original article Hit count: 282

Filed under:
|
|
|

Judging from the title, I kinda did my program in a fairly complicated way. BUT! I might as well ask anyway xD

This is a simple program I did in response to question 3-3 of Accelerated C++, which is an awesome book in my opinion.

I created a vector:

vector<string> countEm;

That accepts all valid strings. Therefore, I have a vector that contains elements of strings.

Next, I created a function

int toLowerWords( vector<string> &vec )
{
    for( int loop = 0; loop < vec.size(); loop++ )
        transform( vec[loop].begin(), vec[loop].end(),
            vec[loop].begin(), ::tolower );

that splits the input into all lowercase characters for easier counting. So far, so good.

I created a third and final function to actually count the words, and that's where I'm stuck.

int counter( vector<string> &vec )
{

for( int loop = 0; loop < vec.size(); loop++ )
    for( int secLoop = 0; secLoop < vec[loop].size(); secLoop++ )
    {
        if( vec[loop][secLoop] == ' ' )

That just looks ridiculous. Using a two-dimensional array to call on the characters of the vector until I find a space. Ridiculous. I don't believe that this is an elegant or even viable solution. If it was a viable solution, I would then backtrack from the space and copy all characters I've found in a separate vector and count those.

My question then is. How can I dissect a vector of strings into separate words so that I can actually count them? I thought about using strchr, but it didn't give me any epiphanies.

© Stack Overflow or respective owner

Related posts about c++

Related posts about string