Was ist die beste Alternative zum Aufrufen von strlen () in meiner for-Schleifenbedingung in C?

Ich habe gelesen, dass es eine schlechte Praxis ist, strlen () in meiner for-Schleifenbedingung aufzurufen, da dies eine O (N) -Operation ist.

Bei der Suche nach Alternativen sehe ich jedoch zwei mögliche Lösungen:

int len = strlen(somestring);  
for(int i = 0; i < len; i++)  
{

}

oder...

for(int i = 0; somestring[i] != '\0'; i++)  
{

}

Jetzt scheint die zweite Option den Vorteil zu haben, dass 1) keine unnötige Variable deklariert wird und 2) die Zeichenkettenlänge in der Schleife geändert wird und das Ende immer noch erreicht wird, solange die Länge nicht <i ist.

Ich bin mir jedoch nicht sicher. Welches davon ist Standard bei C-Programmierern?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage