我正在开发一个 C 程序,它接受参数形式的输入,然后需要字符串的长度才能继续工作。
不幸的是,在输入上使用
strlen()
时,我面临着一个巨大的问题,即字符串的字符计数错误,其中包含变音符号,因为该函数将变音符号计为两个字符!
示例:
strlen("abc"); //-> 3
strlen("äbc"); //-> 4
strlen("äöü"); //-> 6
有没有办法即使在使用变音符号时也能获得实际字符数?我确实不需要需要以字节为单位的字符串长度。
strlen()
不返回字符数,而是返回字符串的字节数 (char
)。
没有像“äöü”这样的 2 个字节长的 ascii 字符。
它存在用于 unicode 字符串的 wchar_t
类型 (C++)。