De string no sé, eso es de C++, pero si te puedo decir de C. Sí string.h tiene funciones que no son seguras y por ello se hicieron unas parecidas pero que el programador le decía a la función cuántos bytes tenías que usarse: por ejemplo strcpy y strncpy, strcat y strncat, etc.
También hay funcionalidad para manejar caracteres anchos.
Te recomiendo que descargues el proposal para C17 (la normal del estándar hay que pagarla) y veas qué puede hacer C https://web.archive.org/web/20181230041359if_/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf
También hay funcionalidad para manejar caracteres anchos.
Te recomiendo que descargues el proposal para C17 (la normal del estándar hay que pagarla) y veas qué puede hacer C https://web.archive.org/web/20181230041359if_/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf