【C语言】输入三个字符串,比较其大小,最终将它们由大到小输出。利用C指针。

2023-11-10

题目:

输入三个字符串,比较其大小,最终将它们由大到小输出。利用C指针。

解题思路:

定义一个二维字符数组用于存放3组字符串,再定义一个一位指针数组使其分别指向这3个字符串。编写一个函数,利用传入的指针数组,对其指向的字符串的用“选择法”进行排序(比较时采用了更方便的“strcmp”——字符串比较函数。具体用法:strcmp(a,b),若a>b,该函数返回一个正值,若a<b,返回一个负值,a=b返回0),并将这个指针数组的初始指向改为排序后的指向,最后在主函数中利用该指针数组输出排序后的结果即可。

编写程序:

#include<stdio.h>
#include<string.h>
#define N 3	//定义字符串个数 
int main(){
	void sort(char *p[]);	//函数声明 
	char str[N][20]={'\0'};	//二维字符数组 
	int i;		//一个循环变量 
	char *p[N];		//一位指针数组,用于存放一系列指针变量 
	/*-接收字符串-*/
	for(i=0;i<N;i++){
		printf("输入第%d个字符串:",i+1);
		gets(str[i]);
	}
	/*-指针数组的初始化-*/
	for(i=0;i<N;i++)
		p[i]=str[i];
	sort(p);	//调用排序函数 
	puts("从小到大排序为:");
	/*利用指针数组输出排序好的字符串*/	
	for(i=0;i<N;i++)
		puts(p[i]);/*一定要利用指针输出,因为本程序并没对原二维字符数组排序,只是更改了指针指向*/
}
/*-利用指针的排序函数-*/ 
void sort(char *p[]){
	char *max,*t;	//两个字符型指针,min用于存放每轮小字符串,t用于交换指针指向(重要) 
	int i,j,k;
	/*-选择法排序-*/
	for(j=0;j<N;j++){
		for(i=j,max=p[j];i<N;i++){
			/*-以上是两选择法排序的循环-*/
			/*-以下是比较字符串大小的一个循环-*/
			for(k=0;*(p[i]+k)!='\0'||*(max+k)!='\0';k++){	//只要当前字符有一个为'\0'就终止 
				if((strcmp(max,p[i]))<0){		//利用字符串比较函数(如果前比后大返回一个正数,相等返回0,前比后小返回一个负数) 
					/*如果当前字符串比本轮最小字符串小则交换其指向,最后跳出循环*/ 
					t=p[i];
					p[i]=max;
					max=t;
					break;
				}
			}
		}
		p[j]=max;	//选择排序法必要一步 
	}
}

编译运行结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C语言】输入三个字符串,比较其大小,最终将它们由大到小输出。利用C指针。 的相关文章

  • 【Leetcode】49. 字母异位词分组

    49 字母异位词分组 题目链接 代码一 代码二 题目链接 Leetcode 49 字母异位词分组 代码一 func groupAnagrams strs string string 存放字典序相同的字符串切片 hash map string
  • 【C语言】数组

    一维数组的创建和初始化 数组是一组相同类型元素的集合 数组的创建 数组的创建方式 type t arr name const n type t 是指数组的元素类型 const n 是一个常量表达式 用来指定数组的大小 数组创建的实例 数组创
  • 山西电力市场日前价格预测【2024-01-09】

    日前价格预测 预测说明 如上图所示 预测明日 2024 01 09 山西电力市场全天平均日前电价为314 92元 MWh 其中 最高日前电价为593 66元 MWh 预计出现在18 15 最低日前电价为54 95元 MWh 预计出现在13
  • 浅谈归并排序:合并 K 个升序链表的归并解法

    在面试中遇到了这道题 如何实现多个升序链表的合并 这是 LeetCode 上的一道原题 题目具体如下 用归并实现合并 K 个升序链表 LeetCode 23 合并K个升序链表 给你一个链表数组 每个链表都已经按升序排列 请你将所有链表合并到
  • CCF模拟题 202309-2 坐标变换(其二)

    问题描述 试题编号 202309 2 试题名称 坐标变换 其二 时间限制 1 0s 内存限制 512 0MB 问题描述 对于平面直角坐标系上的坐标 x y 小 P 定义了如下两种操作 1 拉伸 k 倍 横坐标 x 变为 kx 纵坐标 y 变
  • CCF模拟题 202309-1 坐标变换(其一)

    问题描述 试题编号 202309 1 试题名称 坐标变换 其一 时间限制 1 0s 内存限制 512 0MB 问题描述 对于平面直角坐标系上的坐标 x y 小P定义了一个包含n个操作序列T t1 t2 tn 其中每个操作ti 1 lt i
  • 牛客字符串

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 例如 随着人工智能的不断发展 机器学习这门
  • 【具有延迟反馈的滤波器,其具有负群延迟】对于混沌系统,在可预测性高的阶段,该滤波器具有预测能力(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
  • 华为OD机试2024年最新题库(C++)

    我是一名软件开发培训机构老师 我的学生已经有上百人通过了华为OD机试 学生们每次考完试 会把题目拿出来一起交流分享 重要 2024年1月 5月 考的都是OD统一考试 C卷 题库已经整理好了 命中率95 以上 这个专栏使用 C 解法 问1 考
  • 带头双向循环链表基础

    带头双向循环链表基础 销毁 销毁 void ListDestory ListNode phead void ListDestory ListNode phead assert phead ListNode cur phead gt next
  • 蒙特卡洛在发电系统中的应用(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
  • 基于卡尔曼的混合预编码技术用于多用户毫米波大规模MIMO系统研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • 矩阵基本操作

    问题描述 已知一个n n的矩阵 方阵n lt 100 把矩阵主副对角线上的元素值加上x 然后输出这个新矩阵 输入格式 一行两个变量 用空格隔开 代表n和x 接下来的n行每行n列 表示矩阵的数值 用空格隔开 输出格式 输出新矩阵 每个数字5个
  • 矩阵基本操作3

    题目描述 问题描述 定义一个N M N M lt 100 的矩阵 将一个该矩阵的行和列的元素互换 存到另一个二维数组中 输入格式 一行两个整数 N M 中间用空格隔开 表示矩阵有N行 M列 接下来共N行M列表示矩阵 输出格式 输出转置以后的
  • 华为OD机试2024年最新题库(Java)

    我是一名软件开发培训机构老师 我的学生已经有上百人通过了华为OD机试 学生们每次考完试 会把题目拿出来一起交流分享 重要 2024年1月 5月 考的都是OD统一考试 C卷 题库已经整理好了 命中率95 以上 这个专栏使用 Java 解法 问
  • 【卡尔曼滤波】具有梯度流的一类系统的扩散映射卡尔曼滤波器研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据 文章
  • 『力扣刷题本』:逆波兰表达式求值

    大家好久不昂 最近 1 个多月罗根一直在备考期末 文章发的很少 现在已经放寒假啦 学习自然也不能拉下 毕竟 4 月份就要去参加蓝桥杯了 先给自己定个小目标 日更 2 篇 咳咳 下面马上开始讲题 一 题目 给你一个字符串数组 tokens 表
  • 【GRNN-RBFNN-ILC算法】【轨迹跟踪】基于神经网络的迭代学习控制用于未知SISO非线性系统的轨迹跟踪(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 第1部分 2 2 第2部分
  • 5_机械臂运动学基础_矩阵

    上次说的向量空间是为矩阵服务的 1 学科回顾 从科技实践中来的数学问题无非分为两类 一类是线性问题 一类是非线性问题 线性问题是研究最久 理论最完善的 而非线性问题则可以在一定基础上转化为线性问题求解 线性变换 数域 F 上线性空间V中的变
  • 高精度运算合集,加减乘除,快速幂,详细代码,OJ链接

    文章目录 零 前言 一 加法 高精度加法步骤 P1601 A B 二 减法 高精度减法步骤

随机推荐

  • 什么是集线器

    集线器 英文名又称Hub 在OSI模型中属于数据链路层 价格便宜是它最大的优势 但由于集线器属于共享型设备 导致了在繁重的网络中 效率变得十分低下 所以我们在中 大型的网络中看不到集线器的身影 如今的集线器普遍采用全双工模式 市场上常见的集
  • 哄女朋友玩的c语言编程,哄女朋友开心的小套路 逗女朋友开心的话套路

    不会玩小编为大家收集整理了哄女朋友开心的小套路 以及逗女朋友开心的话套路如果觉得不错就请收藏一下 下面咱们一起来看一下吧 1 你属什么 虎 不 你属于我 2 想让你爸妈开心吗 想啊 想就带我回家 3 我觉得所有的门都应该让你敲 为什么这么说
  • 通过配置浏览器方式解决跨域问题

    复制桌面上的谷歌浏览器快捷方式 名称改为 Google Debug 浏览器快捷图标 鼠标右键 属性 目标项的最后面 空格 然后加入下面配置 user data dir c ChromeDebug test type disable web
  • java接口回调

    接口回调 我们可以先定义一个接口 比如接口叫usb 然后再定义接口的实现者 如U盘 鼠标 风扇 接口的使用者 如电脑 测试类 Java是一门面向对象语言 一切皆对象 因此在Java中不存在回调函数这一说法的 由于Java的一切皆对象性质 从
  • FPGA时钟电路PCBlayout设计原则

    1 时钟晶振源应该尽可能放在与其连接的FPGA时钟专用引脚的临近位置 2 时钟线尽可能走直线 如果无法避免转弯走线 则使用45度线 尽量避免T型走线和直角走线 3 不要同时在多个信号层走时钟线 4 时钟走线不要使用过孔 因为过孔会导致阻抗变
  • 前端web3入门脚本二:初探dex,在dex完成一笔swap

    前言 现在市面上大多数去中心化交易所 简称dex 都是fork的uniswap的代码 名气比较大的如eth上的sushi 以及 bsc上的pancake 博主这里说的都是V2 uniswapV3在这里不做讨论 那么知道了他们的代码都是来自同
  • 出租车GPS数据处理

    提取出租车订单的OD 从大量的GPS信息中提取出每个出租车订单的起点和终点 数据是出租车GPS的散点时空数据 散点时间间隔大概在15s 取决于GPS的采样频率 因此要提取出乘客出行的OD信息 首先要定义乘客的上车时点 下车时点选取标准 然后
  • JAVA学习之路以及第一次项目实战心得

    JAVA学习之路以及第一次项目实战心得 前言 今天是2023年4月24日 突发奇想想写一篇学习心得 因为以前光顾着一直赶进度学习java 没有总结 也就不知道自己的哪些地方还有缺陷 还需要提高 如何接触到java和学习过程 我是在2021年
  • 江苏省人力资源社会保障厅 省职称办 关于做好2021年度职称评审工作的通知

    各设区市人力资源社会保障局 昆山市 泰兴市 沭阳县人力资源和社会保障局 省各有关厅局人事 职称 部门 各有关企事业单位 社会组织 根据中央和省关于深化职称制度和人才评价机制改革精神 按照 职称评审管理暂行规定 人力资源和社会保障部令第40号
  • uniapp使用中出现的问题

    1 真机调试时 运行到手机 手机显示 本应用无法独立运行 需与HBuilderX搭配使用 我这里是window系统电脑连接到安卓手机 如下图 以上两个图片分别是手机和电脑显示的信息 手机和电脑就一直这样显示 就没然后了 处理方法 升级最新H
  • HTTPS 原理详解

    转自 https baijiahao baidu com s id 1570143475599137 wfr spider for pc 前言 HTTPS 全称 HyperText Transfer Protocol over Secure
  • 计算机中cat是什么命令,cat(操作系统命令)_百度百科

    本词条缺少概述图 补充相关内容使词条更完整 还能快速升级 赶紧来编辑吧 cat是操作系统命令的名称 cat命令在Unix和类Unix系统中是英语单词concatenate 意思都是连接 的缩写 作用是显示或连接多个文本文件 在Apple P
  • 无向图

    概念轰炸 图是由一组顶点和一组能够将两个顶点连接的边组成的 x y表示x到y的一条边 一条连接一个顶点和其自身的边称为自环 连接同一对顶点的两条边称为平行边 含有平行边的图称为多重图 某个顶点的度数即为依附于它的边的总数 当两个顶点通过一条
  • python之调用ffmepg实现mp3比特率修改

    效果 D python projects python learning python aduio gt ffmpeg i WELBOX mp3 b a 32k WELBOX 1 mp3 ffmpeg version 4 3 1 2020
  • 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间

    把一个字符串的大写字母放到字符串的后面 各个字符的相对位置不变 不能申请额外的空间 题目以及要求 把一个字符串的大写字母放到字符串的后面 各个字符的相对位置不变 不能申请额外的空间 我的实现类似冒泡排序 代码为 include
  • nginx配置图片访问路径:root和alias

    图片所在路径 www wwwroot images aaa 1 jpg 访问路径 www images mbox58 com images aaa 1 jpg 使用root location images root www wwwroot
  • 控制器分析-绘制伯德图

    控制器分析 绘制伯德图 设计控制器 需要利用伯德图工具分析控制器的相频特性与幅频特性 本文提供了两种绘制伯德图的方法 第一种是利用MATLAB内置的函数绘制 第二种是自己编写的代码 由于最开始第一种方法获得的图片属性不满意 如坐标轴字体大小
  • Java面试题整理一(反射)

    问题 简述Java中的反射使用 答 1 作用 可以通过配置文件来动态配置和加载类 以实现软件工程理论里所提及的类与类 模块与模块之间的解耦 反射最经典的应用是spring框架 2 定义 反射简单来说 就是动态加载对象 并对对象进行剖析 在J
  • 将div的宽、高按比例设置有什么效果

    在添加div时 对它的大小 宽 高 有两种设置方法 固定值和百分比 1 若div的宽高为固定值 则该div的显示效果会随着其父div的缩放而变化 如下所示 fixed width 200px height 100px background
  • 【C语言】输入三个字符串,比较其大小,最终将它们由大到小输出。利用C指针。

    题目 输入三个字符串 比较其大小 最终将它们由大到小输出 利用C指针 解题思路 定义一个二维字符数组用于存放3组字符串 再定义一个一位指针数组使其分别指向这3个字符串 编写一个函数 利用传入的指针数组 对其指向的字符串的用 选择法 进行排序