I feel like I'm in the middle of an arguement.
There's no yelling, name calling, etc. going on. It's just a discussion about the best way to help you.
I take it strtok() is conversion of string to integer?
No. The strtok() function is a string parsing function. The atoi() function converts a string to an integer value.
It may be because I read somewhere that Arduino now has a string library with the software so I do not need to unzip and drag a WString library to the arduino library.
Case is important. The Arduino has a String library. While it is a good idea, the implementation leaves a lot to be desired on such a memory-constrained platform. Even if it didn't have a String library, unzipping and dragging a WString library to the Arduino would probably not be a good idea.
String readString = String(100);
One of the changes between the old WString class and the new String class is what the constructor does. Now, the value in the parentheses is converted to a string, and wrapped in the String object. The value no longer reserves space.
readString.append(c); } //makes the string readString
The += operator is much easier to use and understand, in my opinion.
readString += c; // Append c onto the end...
n = atoi(readString); //convert string to number
atoi() doesn't know anything about Strings, which are not the same as strings. There are three or more ways to deal with the issue. One, the best, is to ditch the String class altogether. Storing data in a NULL terminated char array is simple. That string can then be passed to atoi(). The second way is to use the String::toInt() method, and let it make the call to atoi() on the string is wraps. The third way would be to use String::toCharArray() to extract the wrapped string, and pass that to atoi().
There's Morris' method, too. It's a great approach, if you understand it.
Without knowing exactly what issues you are having with the code, I'll leave it at this, for now.