it may also depend on what the loop body does (can you do it with a built in function? those loop behind your back, but its been tuned, hopefully). building off the last one, a pointer mimics a range based for loop, which can be handy.
Thanks @salem, that's what I use currently when I duel with c-string arrays, or more preciselyfor ( int i = 0 ; bTitle[i] ; i++ ), I was just curious about what I used to code before 2013.
If you change the size of a c-style string within the loop, then you'll need to re-evaluate the size in every loop if you use a size somewhere.
However, the way to work with c-style strings is via a pointer and test whether the deref pointer has a 0 value (end) or not (as others have stated above).
Note that some of the c string functions (eg strcat do an internal equivalent of strlen() ).