【题目描述】
编写程序,输入城市名,按字母顺序输出城市名清单。
(注:城市按拼音排列输出)
【思路】
(1)利用字符串比较函数(strcmp)和数组排序算法实现;
(2)动态申请指针数组,每个数组元素的数据类型为,char *;
【输入格式】
第一行一个整数 n 表示城市名的个数
接下来 n 行每行一个字符串表示城市名
【输出格式】
n 行 n 个字符串,表示城市名按顺序排序后的结果
【输入样例】
3
chongqing
beijing
shanghai
【输出样例】
beijing
chongqing
shanghai
/*
* @Description: 编写程序,输入城市名,按字母顺序输出城市名清单。(注:城市按拼音排列输出)
* @Version: 1.0
* @Author: Jiaoz
* @Email: jiaozzzzzzzz@qq.com
* @Date: 2021-11-18 23:04:10
*/
#include <iostream>
#include <cstring>
using namespace std;
int main(){
int n;
cin>>n;
char** p = new char*[n];
for (int i = 0;i<n;i++){
char str[10];
cin>>str;
*(p+i) = new char[10];
strcpy(*(p+i),str);
}
for (int i = 0;i<n-1;i++){
if (strncmp(*(p+i),*(p+i+1),1)>0){
char* tp = *(p+i);
*(p+i) = *(p+i+1);
*(p+i+1) = tp;
}
else if (strncmp(*(p+i),*(p+i+1),1) == 0){
if (strcmp(*(p+i),*(p+i+1))>0){
char* tp = *(p+i);
*(p+i) = *(p+i+1);
*(p+i+1) = tp;
}
}
}
for (int i = 0;i<n;i++){
cout<<*(p+i)<<endl;
}
for (int i = 0;i<n;i++){
delete []*(p+i);
}
delete []p;
system("pause");
return 0;
}