Will the strlen() function below get called just once (with the value stored for further comparisons); or is it going to be called every time the comparison is performed?
It will be called for each iteration. The following code only calls strlen function once.
for (i = 0, j = strlen(word); i < j i++) { /* do stuff */ }