我想知道如何在C中使用C语言中的变音符号来执行人们全名的可靠的字母排序(对于列表框)?C中的变音符号按字母顺序排列#
在此先感谢。
问题:那么你只是想把作为“原始”字母的变音符号? (例如:João和Joao一样)? - NullUserException
一个:我想对待他们,他们应该在我定义的语言来对待,尊重字母排序的,人们日常应用的规则。我确定它是用每种语言的语法写成的。谢谢。 - 队列
我想知道如何在C中使用C语言中的变音符号来执行人们全名的可靠的字母排序(对于列表框)?C中的变音符号按字母顺序排列#
在此先感谢。
问题:那么你只是想把作为“原始”字母的变音符号? (例如:João和Joao一样)? - NullUserException
一个:我想对待他们,他们应该在我定义的语言来对待,尊重字母排序的,人们日常应用的规则。我确定它是用每种语言的语法写成的。谢谢。 - 队列
此MSDN文章应该会给你你需要的:Comparing and Sorting Data for a Specific Culture。它用代码示例描述了文化敏感的比较,排序和规范化。
正是我在找的东西。谢谢! – Qosmo 2010-09-06 23:19:30
您可以使用s.Normalize(NormalizationForm.FormD)
来规范字符串s
,将重音字符分隔为无重音字符,后跟重音符号。然后,您可以使用CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.NonSpacingMark
识别规范化的s
中的重音字符c
。鉴于此,您可以实现自己的字符串比较运算符,以便根据重音放置任何需要的顺序。
所以,你只是想把作为“原始”字母的变音符号? (例如:João和Joao一样)? – NullUserException 2010-09-06 21:54:40
它是按字母顺序而不是语法,但是如果大量使用变音符号,大多数字母语言都会有这些顺序。一些非正式的,一些正式的,一些有不止一种正式的(一些有不同的字典排序,但“电话目录”排序的名称不同)。 – 2010-09-07 02:42:45