C语言经典例79-字符串排序

基于c语言实现 字符串排序 基于c语言实现 字符串排序一.简单的字符串排序举例实现题目代码 一.简单的字符串排序 给定有限个字符串,将其按照大小顺序排列。 此时的大小顺序简单来说我们可以先认为是ASCLL码的大小顺序。由此我们只需要比较字符串的ASCLL码的大小即可。 举例实现 题目 本题要求编写程序,读入5个字符串,按由小到大的顺序输出。(pta题目) 输入格式: 输入为由空格分隔的5个非空字符串,每个字符串不包括空格... 阅读详情

1 题目

字符串排序,输出三个字符串(长度小于20),并将其按照ASCII码顺序排序。

2 分析

首先限制三个字符串的输入,本例利用fgets函数,该函数的原型为:

char *fgets(char *str, int n, FILE *stream)
  • str : 这是指向一个字符数组的指针,该数组存储了要读取的字符串。
  • n : 这是要读取的最大字符数(包括最后的空字符)。通常是使用以 str 传递的数组长度。
  • stream : 这是指向 FILE 对象的指针,该 FILE 对象标识了要从中读取字符的流。

其中字符串的长度可以通过sizeof技巧来计算即数组总大小/单个项大小,就是总长度sizeof str1 / sizeof str1[0],stream则为标准输入流stdin

由于本例中只有三个字符串,很容易想到之前做过的三个数的大小比较, 是通过三个if语句判断的,在本例中如何判断字符串大小呢?实际上C语言string.h头文件中包含了字符串比较函数strcmp,它的函数原型如下:

int strcmp(const char *str1, const char *str2)

其中str1和str2是要比较的两个字符串,它的返回值如下:

  • 如果返回值小于 0,则表示 str1 小于 str2。
  • 如果返回值大于 0,则表示 str2 大于 str1。
  • 如果返回值 = 0,则表示 str1 等于 str2。

该函数的实现原理是通过比较ASCII码值来实现的。
在比较两个字符串大小后,则要交换两字符串,这里可以使用strcpy字符串复制函数来实现,它的原型如下:

char *strcpy(char *dest, const char *src)

功能就是将src中的内容复制到dest中。

3 实现

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void swap(char*str1, char*str2);

int main()
{
    char str1[20], str2[20], str3[20];
    printf("请输入3个字符串,每个字符串以回车结束:\n");
    fgets(str1, (sizeof str1 / sizeof str1[0]), stdin);
    fgets(str2, (sizeof str2 / sizeof str2[0]), stdin);
    fgets(str3, (sizeof str3 / sizeof str3[0]), stdin);
    if (strcmp(str1, str2) > 0) {
		swap(str1,str2); // 比较str1和str2
	}
    if (strcmp(str2, str3) > 0) {
		swap(str2,str3); // 比较str2和str3
	}
    if (strcmp(str1, str2) > 0) {
		swap(str1,str2); // 比较str1和str2
	}
    printf("排序后的结果为:\n");
    printf("%s%s%s", str1, str2, str3);
    return 0;
}

void swap(char *s1, char *s2)
{
    char t[20];
    strcpy(t, s1);
    strcpy(s1, s2);
    strcpy(s2, t);
}

4 运行结果

请输入3个字符串,每个字符串以回车结束:
def
abc
bed
排序后的结果为:
abc
bed
def
c语言经典编程282例xiazai,C语言经典编程282例源码(入门级) 【实例简介】【实例截图】【核心代码】目 录第1章 初识C语言1实例001 第一个C语言程序2实例002 一个完整的C语言程序2实例003 输出名言3实例004 用TC 2.0打开文件4实例005 计算正方形的周长5第2章 简单的C程序6实例006 输出一个正方形7实例007 输出一个三角形8实例008 一个简单的求和程序9实例009 求10!10实例010 3个数由小到大... 阅读详情

相关推荐

C语言经典题集合

输入任意3个整数,编程实现对这3个整数进行由小到大排序井将排序后的结果显示在屏幕上。

C214574728的博客 2032

C语言:字符串排序

C语言利用二维数组与起泡法给字符串排序

a486368464的博客 2万+

C语言字符串排序

通过比较和交换相邻元素,可以将较大(或较小)的元素逐渐移动到一端,从而实现排序。在实际应用中,还有其他更高效的排序算法,比如快速排序和归并排序,可以根据实际情况选择适合的算法。冒泡排序算法的基本思想是通过相邻元素的比较和交换,将较大(或较小)的元素逐渐“冒泡”到数列的一端。字符串排序是一种常见的编程问题,它涉及将一组字符串按照一定的顺序进行排列。需要注意的是,上述代码中的字符串数组是通过指针数组来表示的,每个指针指向一个字符串常量。如果需要对可变的字符串数组进行排序,需要对代码进行适当的修改。

m0_47037246的博客 3928

字符串排序-C语言

二、字符串排序 题目描述 输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码的大小从小到大进行排序,请输出排序后的结果 输入描述: 一个字符串,其长度n<=20 输出描述: 输入样例可能有多组,对于每组测试样例, 按照ASCII码的大小对输入的字符串从小到大进行排序,输出排序后的结果 示例1 输入 dcba 输出 abcd 代码如下: #include <stdio.h> int main(){ char a[30]; int count=0; scanf...

Alexling0的博客 9487

C语言字符排序 - 用C语言实现字符串排序

在计算机程序中,字符串排序是一个非常基本的操作,特别是在文本编辑、搜索引擎等方面。在C语言中,字符排序也是一个重要且必需的操作。具体而言,我们通过比较大小,将小于主元素的元素移动到左边,大于主元素的元素移动到右边。总之,在C语言中,字符排序是一个非常重要的问题,也是开发人员必须掌握的技能之一。希望通过本文的介绍,能够帮助大家更好地理解字符排序的本质和实现方式,从而在实际开发中应用到这个知识点,提升程序的性能和可靠性。下面我们将用C语言实现一种基于快速排序的字符排序算法,来解决对字符串排序的问题。

2301_79326857的博客 1798

经典C语言程序100例之七九

【程序79】 题目:字符串排序。 1.程序分析: 2.程序源代码: main() { char *str1[20],*str2[20],*str3[20]; char swap(); printf(“please input three strings\n”); scanf("%s",str1); scanf("%s",str2); scanf("%s",str3); if(strcmp(str1,str2)>0) swap(str1,str2); if(strcmp(str1,str3)>0)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 447

C语言经典100例(79)字符串排序

【代码】C语言经典100例(79)字符串排序。

jlfcc的博客 119

蓝桥杯嵌入式(基础教程)STM32G431RBT6——创建工程以及点灯

首先选择正确的芯片类型:STM32G431RBT6工程的创建主要有配置时钟以及烧录的方式。在配置好之后需要对时钟进行配置,由于蓝桥杯的外部晶振是24MHz因此需要对时钟树进行相应的配置。第一步先点击时钟配置之后就可以对时钟进行相应的配置了最后一步,需要对工程起一个名字,并且要选择KEIL做为其相应的软件之后再需要再生成代码那里进行相应的控制。当然这样根据生成的工程不能直接使用会有一个报错,所以需要添加一个启动文件。这个启动文件可以在官方的LCD文件夹下复制到自己的工程中。

m0_74051113的博客 1093

菜鸟教程-C语言经典100示例(后50)

注:接上篇(菜鸟教程-C语言经典100示例(前50))51,学习使用按位与 &amp;。52,学习使用按位或 |。53,学习使用按位异或 ^。54,取一个整数a从右端开始的4~7位。55,学习使用按位取反~。56,画图,学用circle画圆形。57,画图,学用line画直线(在TC中实现)。58,学用rectangle画方形。(在TC中实现)。59,画图,综合例子。(在TC中实现)。60,画图,综...

zlhcsm的博客 7万+

AutoGenTestCase - AI大模型生成测试用例

AI技术助力高效软件测试:AutoGenTestCase工具介绍 传统手工测试存在效率低、覆盖不全等痛点。AutoGenTestCase工具集成DeepSeek、通义千问等AI大模型,能快速解析需求并自动生成标准化测试用例,将数小时工作缩短至分钟级。该工具部署简单,仅需配置APIKey即可运行,支持多种测试用例类型比例设置,并输出Markdown和Excel格式的测试用例。通过GitHub或网盘下载后,用户可按照教程完成APIKey配置、需求文档上传和用例生成等操作,显著提升测试效率与覆盖完整性。

YIqifeibaQI的博客 347

使用RepeatModeler和RepeatMasker注释基因组重复序列

重复序列注释有两种常用策略,基于同源序列相似性和基于重复序列结构特征。RepeatMasker是基于同源序列相似性注释序列的常用工具, RepeatModeler可用来从头对基因组的重复序列家族进行建模注释,它的核心组件是RECON和RepatScout。 这篇教程介绍如何使用RepeatModeler从头鉴定基因组的重复序列,之后用RepeatMasker根据自...

xuzhougeng blog 8849

C语言编程经典100例(四)

C语言编程经典100例(四) 【程序76】 题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数    1/1+1/3+...+1/n(利用指针函数) 1.程序分析: 2.程序源代码: main() #include “stdio.h“ main() { float peven(),podd(),dcall()

shen332401890的专栏 2060

5种超实用方法:快速获取Windows文件夹下所有文件名(含CMD/PowerShell脚本)

本文详细介绍了5种快速获取Windows文件夹下所有文件名的实用方法,包括图形界面操作、Excel数据导入、CMD命令和PowerShell脚本。特别提供了高效的CMD和PowerShell脚本示例,帮助用户轻松实现文件名的批量获取与管理,大幅提升工作效率。

opencv7vision的博客 449

C语言经典一百例

经典C语言程序设计100例 1.数字排列    2.奖金分配问题    3.已知条件求解整数    4.输入日期判断第几天 5.输入整数进行排序    6.用*号显示字母C的图案  7.显示特殊图案    8.打印九九口诀 9.输出国际象棋棋盘    10.打印楼梯并按条件打印笑脸   11.经典兔子问题   12.判断素数 13.水仙花数问题   14.正整数分解质因数   15.学习成

xngjing的博客 1万+

RH850从0搭建Autosar开发环境【3X】- Davinci Configurator之Port模块配置详解(MCAL配置)

RH850从0搭建Autosar开发环境【3X】- Davinci Configurator之Port模块配置详解(MCAL配置)

weixin_42412049的博客 2276

NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.解决方案

本文主要介绍了NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.解决方案,希望能对使用jupyter notebook的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

79 子字符串排序

79 子字符串排序 作者: zzp时间限制: 1S章节: 字符串 问题描述 : 编程对字符串中的子串按字典序输出。子串的形成方法为:从原始字符串开始,依次去掉开头字符形成新的子串。 例如,字符串"grain" 的子串如下所示(依次去掉g,r,a,i): grain、rain、ain、in、n 按字典序排列为: ain grain in n rain 输入说明 : 输入有多行,每行一个字符串,每个字...

内在的天空 393

uniapp(全端兼容) - 最新实现全局设置修改字体大小功能,统一修改全部页面所有文字的大小(标准/小/中/大字号切换,用户修改后整个项目立即生效)设置应用字体的大小(详细示例代码,一键复制开箱即用

uni-app,支付宝微信小程序,h5,手机端H5网页,移动端网站,安卓app,ios苹果app,nvue,全局设置字体大小,退出后还能记录字号大小,uniApp将全部页面的字体字号进行修改,uniapp设置改变全局字体大小功能,动态调整应用字体大小,详细教程,动态显示字体大小,可调整显示字体大小,如何解决不同端字体大小的问题,除了rem还有什么方法,设置全局字体大小,用户设置字号大小,应用字体大中小,实现用户全局设置应用字体大小,老年模式字体设置思路,h5端不行怎么办,移动端不生效,修改全局字号,一键改整

✅ 精选推荐文章 8884

【C语言基础案例目录】经典C语言程序设计100例目录(附100例题目)

《C语言基础案例目录》精选100个经典程序设计案例,分为10个部分(每部分10例),涵盖数字组合、奖金计算、完全平方数等基础算法。案例由浅入深,包含素数判断、水仙花数、斐波那契数列等数学问题,以及递归、绘图、位运算等进阶内容。每个案例提供题目描述和源码解析,适合C语言学习者系统练习编程思维和实战能力。从基础控制结构到复杂算法实现,全面培养程序设计能力。

yuhuasheng1997的博客 1512

2.2 保姆级教程:手把手带你构建第一个 LangGraph 应用

本文是一份保姆级教程,手把手教你构建第一个LangGraph应用——"智能工具助手"Agent。教程分为8个步骤:从环境准备到工具定义(使用Tavily搜索API和自定义计算器),再到定义图状态、创建决策节点和执行节点,最后连接工作流并编译运行。通过这个项目,你将学会如何让Agent智能选择工具(搜索或计算),掌握LangGraph开发的基本流程,为构建更复杂系统打下基础。关键点包括状态管理、节点设计和条件路由的实现。

yonggeit的博客 3116

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C语言经典算法题

1.采用递归求解的方法,用倒序输出字符串系统,用户输入字符串,程序运行后,将倒序输出。 #include "stdio.h" void reverse(){ char c ; if((c=getchar())!='\n'){ reverse(); }; printf("%c",c); }; int main(){ printf("请输入一个字符串"); reverse(); printf("\n"); return 0; } 2.输入一行字符串,按如下规则..

分享前端工程化、AI 应用、Agent 开发与大模型实践! 2592

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

C语言学习-菜鸟教程C经典100例-练习79

该程序实现了对三个字符串的排序功能。用户输入三个字符串后,程序使用strcmp函数比较字符串大小,通过swap函数交换字符串顺序,最终输出按字典序排列的结果。程序使用fgets安全读取输入,并处理换行符,避免了缓冲区溢出问题。示例输入"b"、"a"、"t"时,程序正确输出排序结果"a"、"b"、"t"。

2301_77670476的博客 69

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【C语言基础案例】经典C语言程序设计100例附源码解析(71-80例)

本文介绍了C语言程序设计71-80例的部分源码及解析,涵盖多个核心知识点。主要内容包括:结构体应用的学生信息管理系统(例71)、链表创建与反向输出(例72-73)、链表连接操作(例74)、逻辑推理题(例75)以及函数指针应用(例76)。示例程序展示了C语言中结构体、链表、指针、动态内存分配等关键技术的实际应用,帮助读者深入理解这些基础概念并提升编程能力。每个案例都包含完整的源代码和核心知识点分析,适合C语言学习者参考实践。

yuhuasheng1997的博客 548

字符串的冒泡排序c语言,c语言单链表冒泡排序_c语言字符串排序冒泡法_c语言链表排序...

1。 #include 2。 3。 struct Node; 4。 5。 typedef struct Node *PtrToNode; 6。 typedef PtrToNode List; 7。 typedef PtrToNode Position; 8。 typedef int ElementType; 9。 10。 struct Node 11。 { 12。 13。 14。 }; 15。 ...

weixin_32737183的博客 924

C 练习实例79-字符串排序

【代码】C 练习实例79-字符串排序。

计海无涯的博客 219

c语言简单的随机抽签_C语言程序设计100个简单的经典例子

经典C语言程序设计100例1.数字排列2.奖金分配问题3.已知条件求解整数4.输入日期判断第几天5.输入整数进行排序6.用*号显示字母C的图案7.显示特殊图案8.打印九九口诀9.输出国际象棋棋盘10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大公约数和最小公倍数17.统计英文字母/空格/数字个数18.求s=a...

weixin_39787345的博客 527
上一篇: C语言经典例76-根据n的奇偶性累加
下一篇: C语言经典例80-猴子分桃
syzdev
博客等级 码龄9年 852粉丝 149原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值