字符串排序用c语言或c++怎么做?
题目
输入 n 个字符串 (n 不超过 10,每个字符串长度不超过 100个字符),按字典序升序排序输出。


字典序升序该怎么写?
字符串排序用c语言或c++怎么做?
题目
输入 n 个字符串 (n 不超过 10,每个字符串长度不超过 100个字符),按字典序升序排序输出。


从输入获取n个字符串到二维字符数组后,可以在循环中,使用strcmp()方法来排序输入的二维字符数组中的多个字符串,排序完成后,再打印二维字符数组中的多个字符串即可。
代码如下:
#include <stdio.h>
#include <string.h>
int main(void){
int n,i,j;
char str[10][101],temp[101]; // 二维字符数组str用于存储从输入获取的多个支持,字符数组temp用于交换时临时存储字符串
scanf("%d",&n); // 从输入获取n的值
while(getchar()!='\n'){ // 去除缓冲区的多余字符,以免被下面的ges()函数读取到
continue;
}
for(i=0;i<n;i++){ // 从输入获取n个字符串到二维字符数组str中
gets(str[i]);
}
// 按字典顺序升序排序二维字符数组str中的多个字符串
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(strcmp(str[i],str[j])>0){
strcpy(temp,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],temp);
}
}
}
// 打印二维字符数组str中排序后的字符串
for(i=0;i<n;i++){
printf("%s\n",str[i]);
}
return 0;
}
