【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;
    }

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

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

    🌹🌹谢谢观看!

相关推荐
xiancai_xianyu11 分钟前
想把数据模型一次建完美再上AI?会一直卡在建模里
开发语言·人工智能·php·数据模型·语义层·本体建模·企业知识网络
繁星蓝雨19 分钟前
C++设计原理———重载(extern “C“的由来、顺序依赖、语义依赖、overload、名称修饰符、对象操作、运算符重载、新增运算符、枚举和布尔类型)
c语言·c++·extern c·overload·重载·语义依赖·顺序依赖
(Charon)26 分钟前
【C++】网络缓冲区设计(二):Ring Buffer环形缓冲区、head/tail与跨界读写
开发语言·c++
Java后端的Ai之路36 分钟前
LangChain Deep Agents 从入门到企业实战
开发语言·人工智能·python·langchain·deepagents
会飞的拖把40 分钟前
Python文件操作详解:从文件读写到os、shutil模块实战
开发语言·python
RS迷途小书童1 小时前
Python 解析大疆无人机 SRT 字幕日志
开发语言·python·无人机
SuperByteMaster1 小时前
编译器将unsigned short 整体提升int和unsigned short 在内存中的分配2byte的理解
c语言
点心的游戏开发世界1 小时前
GDScript 入门笔记(十六):文件读写与数据持久化
开发语言·笔记·游戏引擎·godot
会飞的拖把1 小时前
Python序列详解:列表、元组、字符串的通用操作(超详细版)
开发语言·windows·python
reasonsummer2 小时前
【办公类-115-01】20260906育儿知识(家园小报)批量制作(2026年9月-2027年6月)
开发语言·数据库·c#