C++ 字符串数组排序:使用 sort 函数和自定义比较函数
该代码没有明显的问题,可以正常运行。
该代码使用 C++ 的 sort 函数对字符串数组进行排序,并使用自定义比较函数 cmp 实现字母顺序的排序。
#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 风格字符串的大小,如果a小于b,则返回true,否则返回false。sort函数:sort函数用于对数组进行排序,它需要三个参数:p: 指向数组的起始位置。p + 3: 指向数组的结束位置。cmp: 自定义比较函数。
p[3]:这是一个指针数组,存放三个字符串的首地址。
运行结果:
该代码将输入的三个字符串按字母顺序排序后输出。例如,如果输入三个字符串为 'abc', 'def', 'ghi',则输出结果为:
abc
def
ghi
注意:
该代码使用 cin.getline 函数读取字符串,因此可以输入包含空格的字符串。
总结:
该代码展示了如何使用 C++ 的 sort 函数对字符串数组进行排序,并使用自定义比较函数实现字母顺序的排序。通过使用指针数组和 strcmp 函数,可以方便地实现对字符串数组的排序。
原文地址: https://www.cveoy.top/t/topic/nhOh 著作权归作者所有。请勿转载和采集!