C++ 字符串排序:使用指针数组和自定义比较函数
以下是使用 C++ 对三个字符串进行排序的代码示例,代码中使用了指针数组和自定义比较函数:
#include <iostream>
#include <cstring>
using namespace std;
bool cmp(const char* a, const char* b) {
return strcmp(a, b) < 0; //strcmp函数比较两个C风格字符串的大小,小于0则a<b,等于0则a=b,大于0则a>b
}
int main() {
char a[21], b[21], c[21];
cin.getline(a, 21);
cin.getline(b, 21);
cin.getline(c, 21);
const char* p[3] = {a, b, c}; //定义指针数组,存放三个字符串的首地址
sort(p, p + 3, cmp); //使用指针排序
for (int i = 0; i < 3; i++) {
cout << p[i] << endl; //输出已排序的字符串,记得换行
}
return 0;
}
代码说明:
cmp函数: 该函数用于自定义比较两个字符串的大小。它使用strcmp函数比较两个 C 风格字符串,并根据比较结果返回true或false,用于排序算法。- 指针数组: 定义一个
const char*类型的指针数组p,并存储三个字符串的首地址。 sort函数: 使用std::sort函数对指针数组p进行排序,并将自定义比较函数cmp作为参数传递给sort函数。- 输出: 使用循环遍历排序后的指针数组,并输出每个字符串。
运行结果:
用户输入三个字符串后,代码将输出排序后的字符串。
总结:
本代码示例展示了如何使用指针数组和自定义比较函数对字符串进行排序,并使用 sort 函数进行排序操作。该方法灵活且高效,适用于各种字符串排序场景。
原文地址: https://www.cveoy.top/t/topic/nhOc 著作权归作者所有。请勿转载和采集!