Это зависит от контекста. Когда кто-то говорит о строке, заканчивающейся нулем, он обычно говорит о строке в стиле C, которая представляет собой просто массив символов, за которым следует 0-байт в конце, иногда называемый \ 0 или нулевым.
Это отличается от строковых типов данных, которые вместо этого сохраняют свою длину в начале, а затем массив символов. В этом случае строка "йо!" будет представлен как:
Length Char0 Char1 Char2
------ ----- ----- -----
3 y o !
Когда кто-то говорит о строке «не завершается», он обычно говорит о строке, которая не заключена в два набора кавычек - это та ошибка, которую даст вам компилятор. Это совершенно другая вещь.