Btw, in gcc and clang `strlen` is marked as `pure`, so we technically shouldn't have to save it in a temporary variable, the compiler will do that for us. But I don't trust other compilers...