質問: int str_length(const char s[])
回答: whileやforは条件分を満たすとき次の命令文を実行する です。 条件文はどこか?と言われれば while (a) for(; (a); ) (a)の部分になります。 じゃあ質問文の場合はどうみるのか? ですが C言語の仕様として 0 ならTrue それ以外ならFalse と判定する仕様があります。 これが文字列(char配列)に当てはめた場合 scanf() で取り込んだ時にデリミタ(終端文字:最後をあらわす文字)として'\0'(null : データ上はcharの値が0)が付加されるのでFalseと判定されます。