用基础c++语言编写一个c++程序:在主函数中输入10个不等长的字符串放入二维字符数组中。编写函数sort()利用指针数组对其排序,在主函数中输出排好序的字符串 注意:不能出现以下两个问题:getline显示未标识字符,倒数第四行第一个<<显示没有与这些操作相匹配的<<运算符
时间: 2024-01-21 11:17:35 浏览: 70
怎样用C++实现字符串的排序?
4星 · 用户满意度95%
以下是使用指针数组进行字符串排序的C++程序:
```c++
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int MAXN = 10; // 最大字符串数量
const int MAXLEN = 100; // 最大字符串长度
int main() {
char strs[MAXN][MAXLEN]; // 字符串数组
char *pstrs[MAXN]; // 指针数组
// 输入字符串
for (int i = 0; i < MAXN; i++) {
cout << "请输入第" << i+1 << "个字符串:";
cin.getline(strs[i], MAXLEN);
pstrs[i] = strs[i];
}
// 使用指针数组排序
sort(pstrs, pstrs+MAXN, [](char* a, char* b) { return strcmp(a, b) < 0; });
// 输出排好序的字符串
cout << "排好序的字符串:" << endl;
for (int i = 0; i < MAXN; i++) {
cout << pstrs[i] << endl;
}
return 0;
}
```
运行程序后,依次输入10个字符串,程序会使用指针数组对其进行排序并输出排好序的字符串。其中,使用`cin.getline()`函数可以避免输入字符串时出现未标识字符的问题,使用lambda表达式可以方便地定义排序函数。
阅读全文