I've read that it is bad practice to call strlen() in my for loop condition, because this is an O(N) operation.
However, when looking at alternatives I see two possible solutions:
int len = strlen(somestring);
for(int i = 0; i < len; i++)
{
}
or...
for(int i = 0; somestring[i] != '\0'; i++)
{
}
Now, the second option seems like it might have the advantage of 1) not declaring an unnecessary variable, and 2) should the string length be modified in the loop it should still reach the end as long as the length isn't < i.
However, I'm not sure. Which one of these is standard practice among C programmers?