>>I would have trouble, in theory, terminating the char array like this:
>>word[2] = 0;
Theory doesn't always hold water. Coding the above is perfectly legal in both C and C++. I know of no compiler that will produce either errors or warnings on that line.