定义指针数组,使其指向字符串常量:char*name[4]={“Follow”,,“Great”,“FORTRAN”,“Computer”},并进行排序。实际是对指针指向的排序,字符串不动!要求:函数调用实现
时间: 2024-03-20 19:40:28 浏览: 31
下面是一个使用函数调用实现指针数组排序的例子:
```c++
#include <iostream>
#include <string>
void sortPointers(std::string* arr[], int size) {
for (int i = 0; i < size - 1; i++) {
for (int j = i + 1; j < size; j++) {
if (*arr[i] > *arr[j]) {
std::swap(arr[i], arr[j]);
}
}
}
}
int main() {
std::string names[4] = {"Follow", "Great", "FORTRAN", "Computer"};
std::string* namePtrs[4];
// 将指针数组指向字符串常量
for (int i = 0; i < 4; i++) {
namePtrs[i] = &names[i];
}
// 对指针数组进行排序
sortPointers(namePtrs, 4);
// 输出排序后的指针数组
for (int i = 0; i < 4; i++) {
std::cout << *namePtrs[i] << std::endl;
}
return 0;
}
```
在这个例子中,我们首先定义了一个字符串数组 `names`,并将其赋值为所需的字符串常量。然后,我们定义了一个指针数组 `namePtrs`,并使用一个循环将其指向 `names` 中的每个字符串常量。
接下来,我们使用 `sortPointers` 函数对指针数组进行排序。该函数使用嵌套的循环,依次比较指针数组中的每个指针所指向的字符串,如果前一个字符串大于后一个字符串,则交换两个指针的位置。
最后,我们使用另一个循环输出排序后的指针数组。注意,我们使用 `*namePtrs[i]` 来访问每个指针所指向的字符串。