From 89d813cf15ed36fd8137d12075f4e1bc3a4ccfb5 Mon Sep 17 00:00:00 2001 From: tjr Date: Thu, 3 Oct 2002 14:07:26 +0000 Subject: Add an example. --- lib/libc/locale/mbrlen.3 | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'lib/libc/locale') diff --git a/lib/libc/locale/mbrlen.3 b/lib/libc/locale/mbrlen.3 index 0775b2f..f500e85 100644 --- a/lib/libc/locale/mbrlen.3 +++ b/lib/libc/locale/mbrlen.3 @@ -23,7 +23,7 @@ .\" SUCH DAMAGE. .\" .\" $FreeBSD$ -.Dd August 16, 2002 +.Dd October 4, 2002 .Dt MBRLEN 3 .Os .Sh NAME @@ -91,6 +91,27 @@ The byte sequence pointed to by .Fa s is an invalid multibyte sequence. .El +.Sh EXAMPLES +A function which calculates the number of characters in a multibyte +character string: +.Bd -literal -offset indent +size_t +nchars(const char *s) +{ + size_t charlen, chars; + mbstate_t mbs; + + chars = 0; + memset(&mbs, 0, sizeof(mbs)); + while ((charlen = mbrlen(s, MB_CUR_MAX, &mbs)) != 0 && + charlen != (size_t)-1 && charlen != (size_t)-2) { + s += charlen; + chars++; + } + + return (chars); +} +.Ed .Sh ERRORS The .Fn mbrlen -- cgit v1.1