使用变音符号时,C strlen() 返回错误的字符串长度

问题描述 投票:0回答:1

我正在开发一个 C 程序,它接受参数形式的输入,然后需要字符串的长度才能继续工作。

不幸的是,在输入上使用

strlen()
时,我面临着一个巨大的问题,即字符串的字符计数错误,其中包含变音符号,因为该函数将变音符号计为两个字符!

示例:

strlen("abc"); //-> 3
strlen("äbc"); //-> 4
strlen("äöü"); //-> 6

有没有办法即使在使用变音符号时也能得到实际的字符数?发现这个问题已经花费了我几个小时和大量的理智:s

c string character-encoding character strlen
1个回答
0
投票

strlen()
不返回字符数,而是返回字符串的字节数。 没有诸如“äöü”之类的 2 个字节长的 ASCII 字符。

© www.soinside.com 2019 - 2024. All rights reserved.