I have read that use of strlen is more expensive than such testing like this:
We have a string x 100 characters long.
I think that<
for (int i=0;i
This code is calling strlen(x) every iteration. So if x is length 100, strlen(x) will be called 100 times. This is very expensive. Also, strlen(x) is also iterating over x every time in the same way that your for loop does. This makes it O(n^2) complexity.
for (int i=0;x[i]!='\0';i++)
This code calls no functions, so will be much quicker than the previous example. Since it iterates through the loop only once, it is O(n) complexity.