If you're going to microoptimize, remember that `strcspn` throws off completely the branch predictor with the divergent comparisons per byte, while `strchr` doesn't. :)