C ++按字母顺序排序字符串

时间:2015-11-20 19:31:39

标签: c++ string sorting

我是C ++的新手,我在学校完成任务,制作按字母顺序对字符串进行排序的程序。那么有人可以解释我如何做到这一点?

3 个答案:

答案 0 :(得分:1)

使用std::sort(第2版)并编写比较函数,按字母顺序而不是按字典顺序比较字符。如果这必须处理i18n / l10n那么这个函数可能更难写。

答案 1 :(得分:0)

首先,请不要让人们在这里做你的功课。但是,既然你已经完成了大部分程序,我会给你一些提示:

首先,您需要读取字符串,并以某种方式存储它们:

  • 字符串(体面方法)
  • 阵列(可能应该避免这些)
  • 向量(更好的替代数组)

现在你可以使用内置函数std :: sort(但我猜你不允许使用它,因为这是家庭作业)或者你自己编写一个排序函数。

考虑如何搜索字符串中的特定字母的字符串/数组/向量(谷歌搜索' c ++搜索字符串'会给你一些方法)并考虑大写,小写和标点符号的影响

主要问题是计算机没有办法看到一封信是否出现在'之前。另一个 - 看看你是否能找到一种从字符转换为数字的方法(提示:使用与ASCII表结合使用)。

这就是我要给的所有信息,祝你好运!

编辑:关于排序方法的几句话

有一些主要的排序方法:

  • Bubblesort - 按顺序浏览字符串,交换字母 是错误的顺序。反复重复此操作,直到字符串为止 排序
  • 插入排序 - 对于每个字母,将其放在新数组/字符串/向量中的正确位置
  • Quicksort - 将字符串分成两部分,比较两半,交换部分并重复

答案 2 :(得分:-1)

字符串按字母顺序进行比较。让我们花一点时间记住,在一天结束时,字符串是字符数组,让我们也记住字符本身有一个数值,范围从小写' a&# 39;大写' Z',' a'是字母表中的最低值,大写字母Z是最高值。因此,在窗帘后面,当比较两个字符串与比较运算符时,您将相互比较两个数值,如果它们碰巧是相同的,那么比较将被带到它们的字符串中的下一个字母。例如," dog"将首先放在"娃娃"如果你从最低到最高排序。

"dog" < "doll" //This will return true

现在,为了排序,我建议你在数据结构中查找排序方法,或者尝试自己想出字符串比较的方法。