【C语言题解】输入n(1~9),再输入n个长度不超过50的字符串,给这n个字符串排序并输出它们

🥰欢迎关注 轻松拿捏C语言系列,来和 小哇 一起进步!✊

🌈感谢大家的阅读、点赞、收藏和关注


解题思路:

  1. 首先 :使用一个二维字符数组来存储输入的字符串。由于n的范围是1到9,我们可以直接定义一个固定大小的二维数组。

  2. 读取输入

    • 然后读取整数n,并检查其是否在有效范围内。
    • 然后使用循环读取n个字符串。可以使用fgets函数来读取字符串,同时要注意处理字符串末尾可能存在的换行符。(fgets不会忽略空格及空格后面内容,而scanf会忽略)
  3. 排序字符串 :选择一个合适的排序算法对字符串进行排序。由于字符串的排序通常基于字典序,我使用了strcmp函数来比较两个字符串的大小。这里我采用了冒泡排序来实现。

  4. 代码

    cpp 复制代码
    #include<stdio.h>
    #include<string.h>
    void Input(char p[][50], int len)
    {
    	int i;
    	for (i = 0; i < len; i++)
    	{
    		fgets(p[i],50,stdin);
    		p[i][strcspn(p[i], "\n")] = 0;//移除字符末尾的换行符
    	}
    }
    void Output(char (*p)[50], int len)
    {
    	int i;
    	for (i = 0; i < len; i++)
    		//puts(p[i]);//两者效果一样
    		printf("%s\n",p[i]);
    }
    void Sort(char(*p)[50], int len)//排序
    {
    	int i = 0;
    	char temp[50];
    	for (i; i < len-1; i++)
    	{
    		int j = 0;
    		for (j; j < len - 1 - i; j++) 
    		{    
    			if (strcmp(p[j], p[j + 1]) > 0)//使用strcmp函数来比较
    			{
    				strcpy(temp, p[j]);
    				strcpy(p[j], p[j+1]);
    				strcpy(p[j+1], temp);
    			}
    		}
    	}
    }
    int main()
    {
    	int n = 0;
    	scanf("%d", &n);
    	char arr[10][50];
    	Input(arr,n);
    	Output(arr, n);
    	Sort(arr, n);
    	printf("排序后:\n");
    	Output(arr, n);
    	return 0;
    }

    🎉🎉本次的内容结束啦,欢迎有问题评论区讨论。

    😘💕希望大家能够三连支持,你们的鼓励是我前进的动力

    🌹🌹谢谢观看!

相关推荐
笃励13 分钟前
Java面试题二
java·开发语言·python
jyan_敬言22 分钟前
【Linux】Linux命令与操作详解(一)文件管理(文件命令)、用户与用户组管理(创建、删除用户/组)
linux·运维·服务器·c语言·开发语言·汇编·c++
FL162386312925 分钟前
[C#]C# winform部署yolov11-pose姿态估计onnx模型
开发语言·yolo·c#
笑非不退36 分钟前
C++ 异步编程 并发编程技术
开发语言·c++
bcdaren1 小时前
《Windows PE》4.2 绑定导入表
c语言·汇编·windows·pe
爱写代码的刚子1 小时前
C++知识总结
java·开发语言·c++
martian6651 小时前
QT开发:基于Qt实现的交通信号灯模拟器:实现一个带有倒计时功能的图形界面应用
开发语言·qt
冷琴19961 小时前
基于java+springboot的酒店预定网站、酒店客房管理系统
java·开发语言·spring boot
缘友一世1 小时前
macOS .bash_profile配置文件优化记录
开发语言·macos·bash
tekin1 小时前
macos 中使用macport安装,配置,切换多版本php,使用port 安装php扩展方法总结
开发语言·macos·php·port·mac多版本php安装管理·port-select