.
имеет более высокий приоритет, чем унарный *
.
*ItStr.c_str()
, как если бы вы сказали *(ItStr.c_str())
.
Вы, конечно, можете просто использовать ItStr->c_str()
, поскольку (*x).y
эквивалентно x->y
(по крайней мере, для указателей и итераторов; вы, конечно, можете перегружать операторы для своих собственных типов, так что они не согласуется, но вы бы с ума сошли)