盈月玉生烟 2024-06-07 16:42 采纳率: 100%
浏览 6
已结题

关于#c++#的问题,请各位专家解答!(相关搜索:字符串排序|用c语言)

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

img

img


字典序升序该怎么写?

  • 写回答

5条回答 默认 最新

  • a5156520 2024-06-07 20:12
    关注

    从输入获取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;
        
    } 
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 6月20日
  • 已采纳回答 6月12日
  • 创建了问题 6月7日