我试图理解它们两者,但是除了strcoll() this引用说它



第二种想法,我知道我要问另一个问题以获得详细的答案,对于C和C++,此语言环境究竟是什么?

最佳答案

strcmp()一对一地获取字符串的字节,并按字节进行比较。
strcoll()接收字节,使用语言环境转换字节,然后比较结果。转换根据语言重新排序。在法语中,重音字母紧跟在非重音字母之后。因此之后。但是,é f 之前。 strcoll()正确无误。 strcmp()不太好。

但是,在许多情况下,strcmp()就足够了,因为您无需按使用的语言(语言环境)显示排序的结果。例如,如果您只需要快速访问由字符串索引的大量数据,则可以使用由该字符串索引的映射。使用strcoll()排序那些通常很慢的代码(至少与strcmp()相比)可能完全没有用。

有关字符的详细信息,您可能还需要访问Unicode网站。

关于语言环境,这是语言。默认情况下,它设置为“C”(或多或少,没有语言环境)。选择位置后,将相应地设置区域设置。您还可以设置LC_LOCALE环境变量。实际上有很多这样的变量。但是通常,您使用预定义的函数,这些函数会自动考虑这些变量并为您做正确的事情。 (即,格式化日期/时间,格式化数字/小节,计算大写/小写等)

10-08 12:59