UTF-8でのstrlen関数のようなものはありますか? "こんにちは"という文字列の長さをstrlenで測ると5ではなく、15という数値が返ってきてしまいます。

#include <stdio.h>
#include <string.h>

int main() {
    char *s = "こんにちは";
    printf("%lu\n", strlen(s)); // 15と表示される

    return 0;
}

どうすれば期待通りの5を得ることができるのでしょうか?