For the threads
What I have done in a multi-threaded program is push data onto vector (actually a queue, but who's keeping track, anyway?) in the main thread, and then when I need to use the data in another thread, I create the thread, then read the data from vector, pop the data off, then let the thread close.
This is the best method upon which I came. There may be other methods that are better, but this one works for me.
What sort of string implementation?
Character arrays? STL strings? Or some other implementation of a string class?
Here is a list of some (maybe all of the standard functions, shrug) for character arrays:
http://faculty.edcc.edu/~pbladek/c_string_functions.htm
STL strings have many docs, here's a useful one if you prefer code snippets, but if you like to read the actual docs, then use second link:
http://www.msoe.edu/eecs/cese/resources/stl/string.htm
http://www.sgi.com/tech/stl/basic_string.html
For any other non standard string implementations, you would have to look up the corresponding documentation yourself.