m0_74162876 2022-12-24 21:53 采纳率: 33.3%
浏览 151
已结题

c语言从文件中读取城市名,编写函数对城市名进行升序排序

img


c语言从文件中读取城市名,编写函数对城市名进行升序排序,用户输入一个城市名,如果文件中有这个城市,则显示已查找到,如果没有则显示没有找到

  • 写回答

4条回答 默认 最新

  • 语言-逆行者 2022-12-24 22:35
    关注

    img

    
    /**字符串排序*/
    #include<stdio.h>
    #include<string.h>
    #define N 10
    void Sort_String(char arr[][50], int size)
    {
        char tmp[50];
        if(arr == NULL || size < 2)//字符串个数小于2的直接返回,不用排序
            {return;}
        for(int i = 0; i < size - 1; i++)
        {
            for(int j = 0; j < size - i - 1; j++)
            {
                if(strcmp(arr[j], arr[j + 1]) > 0)
                {
                    //利用冒泡的排序算法对字符串进行排序
                    strcpy(tmp,arr[j]);
                    strcpy(arr[j],arr[j + 1]);
                    strcpy(arr[j + 1],tmp);
                }
            }
        }
    }
    void find(char arr[][50], int size){
        int i;
        char str[50];
        printf("请输入你要查找的城市:\n");
        scanf("%s",str);
        getchar();
        for(i=0;i<N;i++){
            if(strcmp(arr[i],str)==0){printf("已查找到!\n");return ;}
        }
        printf("没有找到!\n");
        return ;
    }
    int main(){
      
       int n,i;
       char arr[N][50];
       FILE *fp;
        fp=fopen("city.txt","r");
       if(fp==NULL)
       {
        printf("文件打开失败!\n");
       }
       else{
        for(i=0;i<N;i++)
        {
          fscanf(fp,"%s\n",arr[i]);
        }
       }
       fclose(fp);
       Sort_String(arr,N);
       printf("排序后:\n");
       for(i=0;i<N;i++){
        puts(arr[i]);
       }
       printf("\n");
       find(arr,N);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月2日
  • 已采纳回答 12月25日
  • 创建了问题 12月24日

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)