编写程序,输入若干个字符串。要求:(1)按字符串长度的大小升序输出各个字符串。(2)按字符串中字符的ASCLL码值大小升序输出各个字符串。
如果按照 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;
}
void main()
{
char str[100];
int i,j;
printf("please input a string: ");
gets(str);
for(i=0;i<strlen(str)-1;i++)
{
for(j=i+1;j<strlen(str);j++)
if(str[i]>str[j])
{
char temp; //交换这里错了
temp=str[j];
str[j]=str[i];
str[i]=temp;
}
}
printf("The ordered string is: ");
puts(str);
}
排序算法之冒泡排序,最简答对的解法。