Get indexes of character in array

Andrej Mitrovic andrej.mitrovich at gmail.com
Tue Mar 27 23:42:24 PDT 2012


> 3/28/12, Andrej Mitrovic <andrej.mitrovich at gmail.com> wrote:
> I'd like to get a list of indexes into an array that matches a character.
> E.g.:
>
> "a foo a bar a".indexes("a") == [0, 6, 12]

Hah I even managed to screw up that "bar" has an 'a' there. Anywho
this works just fine:

size_t[] indexes(string input, dchar target)
{
    size_t[] result;
    foreach (index, dchar ch; input)
    {
        if (ch == target)
            result ~= index;
    }
    return result;
}

The cool thing about the foreach loop is that 'index' will point to
the exact code point of the target (it won't just be incremented by +1
on each loop).


More information about the Digitalmars-d-learn mailing list