Here's a console example of gettok() and numtok() that accept characters as the third and second arguments instead of ascii numbers:

Code:
#include <cstdlib>
#include <iostream>
#include <windows.h>

using namespace std;

char *gettok(char *str, int n, char *c);
int numtok(char *str, char *c);

int main(int argc, char *argv[])
{
    cout << gettok("hello world", 2, " ") << endl;
    cout << numtok("hello world", " ") << endl;
    cin.get();
    return EXIT_SUCCESS;
}

char *gettok(char *str, int n, char *c)
{
     char stri[1024], *token;
     lstrcpy(stri, str);
     token = strtok(stri, c);
     for (int i = 1;token && (i < n);i++)
     {
         token = strtok(NULL, c);
     }
     return token;
}

int numtok(char *str, char *c)
{
 	char stri[1024], *token;
 	int n = 0;
 	lstrcpy(stri, str);
 	token = strtok(stri, c);
 	for (int i = 1;token;i++)
 	{
	    token = strtok(NULL, c);
	    n++;
 	}
 	return n;
}


There's probably better ways of doing both, but that's the best I could think of.

I made a new post because code looks awful with the extra spaces code tags add when you edit posts. :\