regardless - as mentioned above - you'd need to determine the length of the string.
since you (now) mentioned said string it declared in a header, i.e. it has a static duration, sizeof large_string is well defined (since static duration objects are default initialized). in that particular case - you just need to determine when the string actually end, and thats depend on the data you're operating on
assuming 2 consecutive 0s signify the end of data - one can simply do:
for(size_t i = 0; i < sizeof str - 1; i++) {
if(str[i] == str[i + 1] == 0) break;
if(str[i] == 0) { printf("\\0"); }
printf("%c", str[i]);
}```
or something along these lines (this particular case doesn't handle the edge case where `str[sizeof str - 1]` is a valid char. you'd need to solve it on your own)