编写程序,输入若干个字符串。要求:(1)按字符串长度的大小升序输出各个字符串。(2)按字符串中字符的ASCLL码值大小升序输出各个字符串。
3条回答 默认 最新
林深 2016-02-18 09:16关注如果按照 1条件优先于2的话,我会这么写。。(你作业好多呀)
#include <string> #include <iostream> #include <algorithm> #include <vector> using namespace std; //比较函数,用于排序 bool compare(string a,string b) { //长度不一样的时候采用长度来排序 if (a.length() != b.length()) { return a.length() < b.length(); } //长度一样的时候采用ASCLL值排序 return a < b; } int main() { vector<string>list; string inputString; while (cin>>inputString) { //结束标志,测试方便,可以注释掉 if (inputString == "0") { break; } //加入到vector list.push_back(inputString); } //排序,系统方法 sort(list.begin(),list.end(),compare); //依次输出 for (int i=0; i<list.size(); i++) { cout<<list[i]<<endl; } return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报