将英文句子的单词拆分,并按按字典顺序排序逐个输出单词
2014-04-11 09:51
225 查看
#include<iostream> #include<string> #include<vector> using namespace std; vector<string> Split(string s,string pattern) { string::size_type pos; vector<string> result; s += pattern; for (int i = 0; i < s.size(); i++) { pos = s.find(pattern, i); if (pos < s.size()) { result.push_back(s.substr(i, pos - i)); i = pos + pattern.size() - 1; } } return result; } int Compare(string s1, string s2) { string::size_type s1_len = s1.size(); string::size_type s2_len = s2.size(); int i = 0; while (i < s1_len && i < s2_len) { if (s1[i] < s2[i]) { return -1; } else if (s1[i]>s2[i]) { return 1; } i++; } if (i < s1_len) return 1; if (i < s2_len) return -1; return 0; } void QuickSort(vector<string> &s, int p, int r) { if (p<r) { int i = p ; int j = r; string x = s[p]; while (i<j) { while (i < j && Compare(s[j], x) == 1) j--; if (i < j) s[i++] = s[j]; while (i < j && Compare(s[i], x) == -1) i++; if (i < j) s[j--] = s[i]; } s[i] = x; QuickSort(s, p, i - 1); QuickSort(s, i + 1, r); } } void Print(string s) { vector<string> vstr; vstr = Split(s, " "); QuickSort(vstr, 0, vstr.size() - 1); for (int i = 0; i < vstr.size(); i++) cout << vstr[i] << ' '; cout << endl; } int main() { string str = "what are you doing"; string str2 = "i am a student"; Print(str); Print(str2); return 0; }
相关文章推荐
- "输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。 句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。 例如输入“I am a student.”,则输出“student
- 使用prompt输入一句英文句子和排序方式(升/降),将所有单词按排序方式排序后在网页上输出
- 编写一个程序,输入一串不超过60个字符组成的且不包含换行符的字符串,将字符串中的A到Z的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度相同,并且要求只对A到Z的字母重新排列,其
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。 句子中单词以空格符隔开。为简单起见,没有标点符号。 例如输入“I am a student”,则输出“student a
- 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student
- 将一个句子里的英文单词倒叙输出,但不改变单词里的字母顺序
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。(笔试题) 句子中单词以空格符隔开。为简单起见,没有标点符号。 例如输入“I am a student”,则输出“student a
- 使用prompt输入一句英文句子和排序方式(升/降),将所有单词按排序方式排序后在网页上输出
- Java实现英文句子中的单词顺序逆序输出的方法
- 使用prompt输入一句英文句子和排序方式(升/降),将所有单词按排序方式排序后在网页上输出
- 2015蘑菇街笔试题——给定一个英文单词的字符串,按照英文单词的顺序反转输出
- 每天学习一算法系列(10)(输入一句英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以空格符隔开)
- (Java)输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以单个空格符隔开
- 剑指Offer——翻转英文句子中的单词顺序
- C++: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符顺序不变
- 输入一个英文句子,按单词逆序输出
- 输入一个英文句子,翻转句子中单词的顺序,单词内字符顺序不变
- java实现读取一篇英文文章,统计其中每个单词出现的次数并排序输出
- 编写一个程序,接受用户输入的一段英文文字后,输出其中的字符数、单词数和句子数(设句子以"?"、"!"、"."结束)。