我创建了一个文本文件,其中3行填充了随机单词。我想:
这是我到目前为止所提出的[runnable]:https://gist.github.com/anonymous/6211515
它读取线条并将它们放在矢量中,对该矢量进行排序,然后将生成的矢量打印到控制台。但我只是排序,我不排序实际的单词。我将整行输入为字符串,这导致了我的问题。我对C ++编程很陌生,我不知道应该怎么做才能对实际单词进行排序,而不是对行进行排序。
这不是家庭作业,它只是我建议的一个问题,我为即将到来的考试做准备。最重要的是解决方案应尽可能简单,因为这项考试将使用笔和纸进行。
答案 0 :(得分:2)
至少如果我理解你想要什么,我会做这样的事情:
std::getline
将字符串读入字符串。std::stringstream
答案 1 :(得分:1)
您正在寻找的是lexicographical sorting
算法。这意味着,按照字母顺序对单词进行排序,就像字典一样。
标准c ++支持该算法。在这里取消:http://www.cplusplus.com/reference/algorithm/lexicographical_compare/
仅为#include <algorithm>
答案 2 :(得分:0)
我假设您想要编写一个能够执行此操作的算法,而不是使用任何预先编写的算法。
一旦你在向量中有了字符串,现在你需要将每个字符串分成单词。因此,您需要遍历向量中每个字符串中的每个字符,找到空格(或文件正在使用的任何分隔符),然后将每个空格前的所有内容放入另一个向量中。并且在您录制完每个空格之前,从字符串中删除您找到的所有内容,以便它不会再次出现。 现在你有了一个单词的向量。然后按照当前排序text_file的方式对该向量进行排序。