按照姓名首字母排序c++指针
时间: 2023-08-03 14:25:39 浏览: 58
可以使用标准库函数`qsort()`,结合自定义的比较函数来排序。以下是一个示例代码:
```c++
#include <iostream>
#include <cstdlib> // 包含 qsort 函数的头文件
using namespace std;
// 比较函数,按照姓名首字母升序排序
int cmp(const void* a, const void* b) {
char* pa = *(char**)a;
char* pb = *(char**)b;
return strcmp(pa, pb);
}
int main() {
const int n = 5;
char* names[n] = {"Alice", "Bob", "Charlie", "David", "Eve"};
// 排序
qsort(names, n, sizeof(char*), cmp);
// 输出排序结果
for(int i=0; i<n; i++) {
cout << names[i] << endl;
}
return 0;
}
```
输出结果:
```
Alice
Bob
Charlie
David
Eve
```
相关问题
c++冒泡排序实现首字母排序
以下是C++实现冒泡排序进行首字母排序的示例代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
void bubbleSort(string arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr[j], arr[j + 1]);
}
}
}
}
int main() {
string arr[] = {"zara", "abc", "123"};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
cout << "Sorted array: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
假设有20个姓名拼音,用指针将姓名按首字母升序排序
好的,我可以给你提供一种用指针实现将20个姓名按首字母升序排序的方法。
首先,我们需要定义一个结构体,用于存储每个姓名的拼音:
```c++
struct Name {
char* pinyin; // 存储姓名拼音的指针
};
```
然后,我们可以定义一个函数,该函数接受一个 `Name` 类型的数组和该数组的大小作为参数,使用指针将数组中的姓名按首字母升序排序:
```c++
void sortName(Name* arr, int size) {
for (int i = 0; i < size - 1; i++) {
for (int j = i + 1; j < size; j++) {
// 比较姓名的首字母,如果前者大于后者,则交换两个姓名的位置
if (*(arr[i].pinyin) > *(arr[j].pinyin)) {
Name temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
```
在 `sortName` 函数中,我们使用了指针来访问每个姓名的首字母,比较它们的大小,并进行排序。注意,我们使用了 `*` 运算符来解引用指针,访问指针所指向的值。
使用该函数,你可以按以下方式调用它,将20个姓名按首字母升序排序:
```c++
// 假设有一个Name类型的数组,存储了20个姓名的拼音
Name names[20] = { ... };
// 调用sortName函数,将姓名按首字母升序排序
sortName(names, 20);
```
希望这个方法对你有所帮助!
相关推荐
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)