Of course C can do anything that Zig can, but Zig (and Rust) can reject bad C code by design.
It is guaranteed that you cannot write non-modern C code, that's why ppl are using new languages.