If this is not terminated by zero, then this is not a C string, and you cannot use functions such as strlen- they will move away from the end of the array, causing undefined behavior. You will need to track the length differently.
You can still print an array of characters endlessly with printf, if you specify the length:
printf("str is %.3s",s2);
printf("str is %.*s",s2_length,s2);
or, if you have access to the array itself, and not to the pointer:
printf("str is %.*s", (int)(sizeof s2), s2);
++: malarkey std::string.