Признаюсь, я неправильно понял ваш первый комментарий. Показалось, что вы намекаете на возможность ошибки в такой записи. То, что вы будет оспаривать, что длина строки из трёх символов равна трём, мне и в голову не пришло. Да, ваш комментарий ошибочен весь.> Нет. Я считаю, что в len должен храниться размер массива символов, включая '\0', поскольку в операциях со значениями размеров строк без учёта '\0' чаще допускаются ошибки. И авторы strl-функций со мной согласны.
Это исключительно ваши личные убеждения. И авторы strl-функций с вами не согласны -- третий аргумент называется size, а не len. Не говоря уже о том, что ASCIIZ-строки к данному представлению вообще не имеют отношения.
> К тому же, терминирующий нуль - анахронизм, мешающий применять wide-кодировки с символами постоянной длины, содержащими нулевые байты.
Да, и поэтому при представлении строки как указателя на массив символов и длины он не нужен.
> По-моему, теперь вы делаете вид, что терминирующий '\0' не является частью строки в Си: "строку и терминирующий NUL" - если это ваша изначальная точка зрения, то почему она такая противоречивая и идёт в разрез со стандартной терминологией?
Да не является. NUL не часть строки в Си, а ограничивающий её символ. Моя точка зрения вполне последовательна и согласуется со стандартной терминологией, как Си, так и общекомпьютерной.