Я не думаю, что стандартные библиотеки C имеют функции UTF-8.Для этого, безусловно, есть библиотеки.
Однако во многих случаях с UTF-8 можно использовать обычные функции str.
strlen
работает хорошо, возвращая количество байтов (не символов).strcat
работает (также легко заполняет ваш буфер, но это нормально для strcat).
Причина в том, что символ 0 не может появляться в многобайтовых данных UTF-8.Так что, если он появляется в строке UTF-8, это, безусловно, его конец, как в ASCII.