以ASCII整理顺序打印字符串

时间:2013-01-11 10:23:15

标签: c

我正在从Stephen Prata的 C Primer Plus 学习C.这是第11章中的一个问题。

  

编写一个最多可读取10个字符串或EOF的程序,以先到者为准   第一。它为用户提供了五种选择的菜单:打印原件   字符串列表,以ASCII整理顺序打印字符串,   按顺序打印字符串   增加长度,按照第一个单词的长度顺序打印字符串   在字符串中,然后退出。让菜单循环,直到用户进入退出状态   请求。当然,该程序应该实际执行承诺的任务

我理解问题,除了它要求“以ASCII整理顺序打印字符串”的位。这是什么意思?这是否意味着我必须改变 ASCII整理顺序中的字符顺序?

4 个答案:

答案 0 :(得分:1)

整理意味着字符串的“逻辑”排序。对于“C”语言环境,这实际上相当于按ASCII代码排序(使用strcmp())。

,排序规则依赖于区域设置

例如,在ISO 8859-1编码和DE语言环境中,字母“ü”(0xfc)不应该在列表末尾的“z”(0x7a)/之后结束,就像使用{ {1}}排序,但排序相当于“ue”(0x75 0x65)......

由于您无法了解所有现有语言环境的所有事实,标准库提供strcmp()strcoll()strxfrm()wcscoll()和{{1 wcsxfrm()的选项,它为您执行特定于语言环境的内容。

欢迎来到国际化的世界。 ;-)幸运的是,问题明确要求“ASCII整理”,这意味着你可以逃脱LC_COLLATE ......

答案 1 :(得分:0)

我认为这意味着对您读取的字符串进行简单排序,并根据字符ASCII值对它们进行排序。

因此,如果您输入两个字符串:"aa""aA",则排序后的顺序应为"aA""aa"。此顺序是因为'a'的ASCII值高于'A'的ASCII值。

答案 2 :(得分:0)

归类意味着定义的排序,任务是按ASCII顺序对输入字符串进行排序,即作为标准的“排序”命令,而不是更改每个字符串中字符的顺序 - 措辞可能更清晰,你只能根据其他任务推断出意图。

答案 3 :(得分:0)

Google是你的朋友:

  

ascii整理顺序
  网络定义   在ASCII图表中定义字符的顺序。 (见附录B。)。

因此,您应该按字符代码/ char元素的值对字符串进行排序。