在主函数中输入10个不等长的字符串。用另一个函数对它们按升序排序, 然后在主函数中输出这10个已排序的字符串,要求利用指针处理。
时间: 2023-06-26 11:03:41 浏览: 92
字符串的操作,输入以字符串,然后排序
以下是一个示例代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
const int MAXN = 10; // 字符串数量上限
const int MAXLEN = 100; // 每个字符串的最大长度
// 比较函数,用于sort函数排序
int cmp(const void *a, const void *b) {
const char *s1 = *(const char **)a;
const char *s2 = *(const char **)b;
return strcmp(s1, s2);
}
// 排序函数
void sortStrings(char *str[], int n) {
qsort(str, n, sizeof(char *), cmp);
}
int main() {
char str[MAXN][MAXLEN]; // 存储字符串的数组
char *ptr[MAXN]; // 存储指向每个字符串的指针
// 输入字符串
cout << "请输入" << MAXN << "个字符串(每个长度不超过" << MAXLEN-1 << "):" << endl;
for (int i = 0; i < MAXN; i++) {
cin >> str[i];
ptr[i] = str[i]; // 将指针指向每个字符串
}
// 排序
sortStrings(ptr, MAXN);
// 输出排序后的字符串
cout << "排序后的字符串:" << endl;
for (int i = 0; i < MAXN; i++) {
cout << ptr[i] << endl;
}
return 0;
}
```
在该示例代码中,我们定义了两个数组:`str`和`ptr`。其中,`str`数组用于存储输入的字符串,而`ptr`数组用于存储指向每个字符串的指针。
在输入完毕后,我们将指针指向每个字符串,然后调用`sortStrings`函数进行排序。该函数内部使用了标准库函数`qsort`进行排序,排序的比较函数为`cmp`。
最后,我们按顺序输出排序后的字符串即可。需要注意的是,由于`ptr`数组存储的是指针,因此在输出时需要使用`cout << ptr[i]`,而不是`cout << str[i]`。
阅读全文