Firstly, I know my title looks like a commonly asked question, but hear me out. When I say 'Parsing arguments' I don't mean the command line arguments that get passed to the program when it starts up. I'm trying to create a seperate system to receive commands and parse them in runtime.
Main:
int main(int argc, char *args[])
{
    cout << "Started up." << endl;
    reloop();
}
// Main execution point. Prints text to the console and moves to a void:
void reloop()
{
    char *str;
    cin >> str;
    parseargs(str);
}
// Starts waiting for inputted data, if found, move onto parseargs void.
void parseargs(char *args)
{
    char *strings[10];
    char delim[] = " ";
    int i = 0;
    strings[i] = strtok(args,delim);
    if(strings[0] == "try")
    {
        cout << "WORKED!" << endl;
        reloop();
    }
    else
    {
        cout << "Na. Didn't work." << endl;
        reloop();
    }
}
// Takes the arguments passed to it, splits them via a space and passes them to an array. From here, compares the first entry in the array to a command. If they equal, output success note.
Now, I'm a C# programmer for quite some time and have only just started C++.. What am I doing wrong? When the program starts up, an error comes up with:
Debug Assertion Failed!
Program: C:\Windows\system32\MSVCP110D.dll
File: c:\program files\microsoft visual studio 11.0\vc\include\istream
Line: 990
Expression: Invalid null pointer
*Note: I do have declarations for each function at the top of the CPP file.
 
     
     
     
     
    