该代码没有明显的问题,可以正常运行。

该代码使用 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 函数,可以方便地实现对字符串数组的排序。

C++ 字符串数组排序:使用 sort 函数和自定义比较函数

原文地址: https://www.cveoy.top/t/topic/nhOh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录