Second thought, not recursively. You can nest ifs to do this:
Code:
if (space[0] == token)
{
if (space[1] == token) // row 1 across check
{
...
}
else if (space[3] == token) // diagonal left to right check
{
...
}
... // column 1 down check
}
else if (space[1] == token) // column 2 check
{
if (space[4] == token)
{
...
}
}
...
If you do this correctly, some combinations will not have to be checked. If you really don't want to check combinations that wouldn't be winning anyway, you could only check possible combinations that have had a token placed on them, but that would be more work than the easy way.
Another possibility is that, when a token is placed, the function that sets it on the tic tac toe board could check only the winning combinations for that space. To make sure all spaces haven't been taken, you'll probably want to increment a counter after each space is successfully taken. If there is no win after the counter reaches 8, it's a draw.