3 9-9 字符串排序-用指向指针的指针实现 分数 20 全屏浏览题目 切换布局 作者 吴敏华 单位 首都师范大学 在主函数中输入8个字符串。用另一函数对它们排序。然后在主函数输出这8个已排好序的字符串。要求用指向指针的指针实现。 输入格式: 输入共8行,表示8个字符串。 输出格式: 输出也是8行,表示8个排好序的字符串。
时间: 2023-12-14 19:37:27 浏览: 84
以下是该题的C++代码实现:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
void sort_string(char **str, int len) {
int i, j;
char *temp;
for (i = 0; i < len - 1; i++) {
for (j = i + 1; j < len; j++) {
if (strcmp(str[i], str[j]) > 0) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
int main() {
char *str[8];
int i;
for (i = 0; i < 8; i++) {
str[i] = new char[100];
cin.getline(str[i], 100);
}
sort_string(str, 8);
for (i = 0; i < 8; i++) {
cout << str[i] << endl;
delete[] str[i];
}
return 0;
}
```
思路解析:
1. 首先定义一个指向指针的指针,用于存储8个字符串。
2. 在主函数中使用 `new` 运算符为每个字符串分配内存,并通过 `cin.getline()` 读入各个字符串。
3. 调用 `sort_string()` 函数进行排序。排序使用了冒泡排序法,将字符串按照字典序从小到大排序。
4. 最后在主函数中输出排好序的字符串,并使用 `delete[]` 运算符释放之前分配的内存空间。
需要注意的是,在使用 `new` 运算符为字符串分配内存时,需要预留足够的空间。在本题中,每个字符串最多有100个字符,因此需要分配100个字节的内存空间。
阅读全文