用户输入10首歌名,歌名存入一字符指针数组,然后分别按原序、字母序和字 母逆序(从Z到A) 显示这些歌名。C++语言
时间: 2024-10-25 14:09:37 浏览: 26
在C++中,你可以使用字符指针数组来存储歌曲名称,并结合循环和排序算法来实现这个功能。以下是简单的步骤:
1. **初始化数组并接收用户输入**:
```cpp
#include <iostream>
#include <string>
char* songNames[10]; // 创建一个大小为10的字符指针数组
int main() {
for (int i = 0; i < 10; ++i) {
std::cout << "请输入第" << (i+1) << "首歌名:";
std::getline(std::cin, songNames[i]);
}
}
```
2. **按原序显示**:
直接遍历数组即可:
```cpp
std::cout << "原序:\n";
for (const char* name : songNames) {
std::cout << name << " ";
}
```
3. **按字母序排序**:
使用`qsort`函数需要自定义比较函数,这里我们假设所有歌名都是小写的英文:
```cpp
void compare(const char* a, const char* b) {
return strcmp(a, b);
}
// 排序前调用
std::qsort(songNames, 10, sizeof(char*), compare);
std::cout << "\n字母序:\n";
for (const char* name : songNames) {
std::cout << name << " ";
}
```
4. **按字母逆序排序**:
同样,先排序再反向打印:
```cpp
std::sort(songNames, songNames + 10, compare); // 反向比较函数,通常是取负值
std::cout << "\n字母逆序:\n";
for (int i = 9; i >= 0; --i) {
std::cout << songNames[i] << " ";
}
```
阅读全文