The deserialization library (messagepack) I am using does not provide null-terminated strings. Instead, I get a pointer to the beginning of the string and a length. What is the
Here is one way:
bool is_same_string(char const *s1, char const *s2, size_t s2_len) { char const *s2_end = s2 + s2_len; for (;;) { if ( s1[0] == 0 || s2 == s2_end ) return s1[0] == 0 && s2 == s2_end; if ( *s1++ != *s2++ ) return false; } }