编写一个能对字符串数组由小到大进行排序的小程序。
测试输入:
banana
apple
orange
grape
blueberry
预期输出:
apple
banana
blueberry
grape
orange
请补全如下代码:
#include
#include
using namespace std;
//设计一个程序实现对一个字符串数组由小到大排序
//在此处完成对该排序函数的定义
//--------------------------------
//主函数验证
int main()
{
//用户输入五个字符串
string s[5];
int i;
for(i = 0; i < 5; i++)
{
cin >> s[i];
}
//此处,调用排序函数进行字母序由小到大排序
stringsort(s, 5);
//---------------------------
//显示正确的排序结果
for(i = 0; i < 5; i++)
{
cout << s[i] << endl;
}
return 0;
}
string类型比较用compare()函数。运行结果:
完整代码:
#include<iostream>
#include<string>
using namespace std;
//设计一个程序实现对一个字符串数组由小到大排序
//在此处完成对该排序函数的定义
void stringsort(string s[], int n)
{
int i, j;
string tmp;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - 1 - i; j++)
{
if (s[j].compare(s[j + 1]) > 0)
{
tmp = s[j];
s[j] = s[j + 1];
s[j + 1] = tmp;
}
}
}
}
//--------------------------------
//主函数验证
int main()
{
//用户输入五个字符串
string s[5];
int i;
for (i = 0; i < 5; i++)
{
cin >> s[i];
}
//此处,调用排序函数进行字母序由小到大排序
stringsort(s, 5);
//---------------------------
//显示正确的排序结果
for (i = 0; i < 5; i++)
{
cout << s[i] << endl;
}
return 0;
}
#include<iostream>
#include<string>
using namespace std;
//设计一个程序实现对一个字符串数组由小到大排序
//在此处完成对该排序函数的定义
void stringsort(string *s, int n)
{
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(s[j] > s[j+1])
{
string t = s[j];
s[j] = s[j+1];
s[j+1] = t;
}
}
}
}
//--------------------------------
//主函数验证
int main()
{
//用户输入五个字符串
string s[5];
int i;
for(i = 0; i < 5; i++)
{
cin >> s[i];
}
//此处,调用排序函数进行字母序由小到大排序
stringsort(s, 5);
//---------------------------
//显示正确的排序结果
for(i = 0; i < 5; i++)
{
cout << s[i] << endl;
}
return 0;
}
该程序已经使用了Python内置的sorted函数对字符串数组进行排序,因此不需要进行太多的优化或补充。但是,如果想要对排序算法进行自定义,可以使用sorted函数的可选参数key来指定排序规则。
例如,如果想按字符串长度进行排序,可以使用以下代码:
def sort_strings(strings):
return sorted(strings, key=len)
# 测试输入
strings = ["banana", "apple", "orange", "grape", "blueberry"]
# 调用排序函数并输出排序结果
sorted_strings = sort_strings(strings)
print(sorted_strings)
这里使用len函数作为key,将字符串按字符数进行排序。
因此,如果想要进一步优化该程序,可以根据具体需要选择合适的排序规则。