C++程序 对字符的字符串进行排序
在许多应用中,对字符串排序是一项非常常见的任务。C++标准库中的sort()
函数可以用于对字符的字符串进行排序。下面我们就来讲讲如何使用sort()
函数完成对字符的字符串的排序。
sort()
函数
sort()
函数是C++中的标准库函数之一,用于对给定范围内的元素进行排序。与其他排序算法相比,sort()
有着较高的执行效率。它的头文件是#include <algorithm>
。
sort()
函数的定义如下:
template <class RandomAccessIterator>
void sort (RandomAccessIterator first, RandomAccessIterator last);
其中参数first
和last
分别是表示待排序区间的迭代器的首地址和尾地址。在排序后,区间[first, last)中的元素将按升序排列。按照默认的排序规则,字符串将按照其每个字符的编码顺序排序。
示例代码
下面是一个简单的示例代码,展示了如何使用sort()
函数对输入的字符型字符串进行排序:
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int main() {
char str[100];
cin>>str; //输入一个字符串
int len=strlen(str); //获取字符串长度
sort(str, str+len); //对字符串进行排序
cout<<str<<endl; //输出排序后的字符串
return 0;
}
在上面的示例代码中,输入一个字符型字符串str
后,调用sort()
函数对其进行排序,最后输出排序后的字符串。需要注意,在使用sort()
函数时,需要包含头文件<algorithm>
。
我们可以输入如下字符串进行测试:
Cxyfrqmpuesa
运行结果如下:
Campefrqsuxy
这里我们可以看到,sort()
函数对字符串进行了升序排列。
自定义排序规则
如果需要使用自定义的排序规则,可以利用函数指针完成。例如,我们要将输入字符串按照字典序的反序排序,可以定义一个比较函数,并将其作为参数传递给sort()
函数。
下面是一个打印字符串按字典序反序排序的示例代码:
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
bool compare(char a, char b) {
return a > b; //按字典序反序排列
}
int main() {
char str[100];
cin>>str; //输入一个字符串
int len=strlen(str); //获取字符串长度
sort(str, str+len, compare); //调用sort函数,指定比较函数compare
cout<<str<<endl; //输出排序后的字符串
return 0;
}
输入和输出结果类似于之前的示例代码,但是排序规律不同,为按照字典序反序排序。
结论
通过本文的示例代码及说明,我们可以看到,使用C++的标准库函数sort()
,对字符的字符串进行排序是一项非常简单的任务。需要注意的是,sort()
函数默认按照每个字符的编码顺序进行排序,如果需要自定义排序规则,需要使用比较函数。