C语言--给定一行字符串,获取其中最长单词【图文详解】


一.问题描述

给定一行字符串,获取其中最长单词。

比如:给定一行字符串: hello wo shi xiao xiao su

输出:hello


二.题目分析

“打擂台算法”,具体内容小伙伴们可以参考前面的内容。


三.代码实现

char* MaxWord(const char* str)
{
	int len = strlen(str);
	char* curstr = (char*)malloc((len + 1) * sizeof(char));
	char* maxstr = (char*)malloc((len + 1) * sizeof(char));
	assert(curstr != NULL && maxstr != NULL);
	if (curstr == NULL || maxstr == NULL)
		return NULL;
	int cur = 0;//当前字符串的长度
	int max = 0;//最长字符串的长度
	for (int i = 0; str[i] != '\0'; i++)
	{
		if (isalpha(str[i]))//是字母,是单词的一部分
		{
			curstr[cur++] = str[i];
		}
		else //当前是非字母,前面的单词提取结束
		{
			if (cur > max)//需要更新数据
			{
				curstr[cur] = '\0';//把curstr变成字符串
				max = cur;
				strcpy(maxstr, curstr);
			}
			cur = 0; //为下次提取单词做准备
		}
	}
	if (cur > max)
	{
		curstr[cur] = '\0';//把curstr变成字符串
		max = cur;
		strcpy(maxstr, curstr);
	}
	free(curstr);
	return maxstr;
}
int main()
{
	char* p = MaxWord("add adfert afda rtert ddffxadf");
	printf("%s\n", p);
	free(p);
	return 0;
}

四.运行结果


创作不易, 如果这份博客👍对你有帮助,可以给博主一个免费的点赞以示鼓励。
欢迎各位帅哥美女点赞👍评论⭐收藏⭐,谢谢!!!
如果有什么疑问或不同的见解,欢迎在评论区留言哦👀。
祝各位生活愉快⭐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/158341.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CMakeLists.txt基础指令与cmake-gui生成VS项目的步骤

简介 本博客主要介绍cmake的基本指令,同时,很多使用Visual Studio小白从Gitbub下载项目源码后,看到CMakeLists.txt,不知道如何使用Visual Studio编译源码;针对以上问题,做一下简单操作与解释,方…

c语言-数据结构-堆

目录 一、二叉树 1、二叉树的概念 2、完全二叉树和满二叉树 3、完全二叉树的顺序存储 二、堆 2、堆的概念与结构 3、堆的创建及初始化 4、堆的插入(小堆) 5、堆的删除 6、显示堆顶元素 7、显示堆里的元素个数 8、测试堆的各个功能 9、 实现堆…

零代码编程:用ChatGPT批量转换多个视频文件夹到音频并自动移动文件夹

有很多个视频文件夹: 要全部转成音频,然后复制到另一个文件夹。 在ChatGPT中输入如下提示词: 你是一个Python编程专家,要完成一个批量将Mp4视频转为Mp3音频的任务,具体步骤如下: 打开文件夹:…

机器学习 天气识别

>- **🍨 本文为[🔗365天深度学习训练营](https://mp.weixin.qq.com/s/Nb93582M_5usednAKp_Jtw) 中的学习记录博客** >- **🍖 原作者:[K同学啊 | 接辅导、项目定制](https://mtyjkh.blog.csdn.net/)** >- **🚀…

matlab层次分析法模型及相关语言基础

发现更多计算机知识,欢迎访问Cr不是铬的个人网站 代码放在最后面! 这篇文章是学习层次分析法模型的笔记。 1.什么时候用层次分析法 层次分析法是建模比赛中最基础的模型之一,其主要用于解决评价类问题(例如:选择哪种方案最好、…

Mysql数据库 16.SQL语言 数据库事务

一、数据库事务 数据库事务介绍——要么全部成功要么全部失败 我们把完成特定的业务的多个数据库DML操作步骤称之为一个事务 事务——就是完成同一个业务的多个DML操作 例: 数据库事务四大特性 原子性(A):一个事务中的多个D…

ZYNQ7000---FLASH读写

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Flash是什么?二、Flash的分类1、内部结构(接口)区分:2、外部接口区分:SPIQPSI Flash: QSPI 控制…

如何做好性能压测 —— 压测环境设计和搭建!

简介:一般来说,保证执行性能压测的环境和生产环境高度一致是执行一次有效性能压测的首要原则。有时候,即便是压测环境和生产环境有很细微的差别,都有可能导致整个压测活动评测出来的结果不准确。 1. 性能环境要考虑的要素 1.1 系…

SMART PLC星三角延时启动功能块(梯形图FC)

这里我们介绍SMART PLC星三角延时启动功能块,SMART PLC的周期定时器功能块请参考下面文章链接: 周期定时器FB_Cycle_time(SCL+梯形图代码)-CSDN博客文章浏览阅读80次。博途PLC定时器指令使用详细介绍请参考下面文章链接:博途PLC IEC定时器编程应用(SCL语言)_scl定时器-CS…

python环境安装教程

1.python解释器安装 python解释器:将书写的代码转换为二进制。 1.打开官网:Welcome to Python.org,点击下载,选择对应的系统和想要下载的python版本进行下载: 2.双击打开下载好的python解释器进行安装,可…

链表(一)----关于单链表的一切细节这里都有

一.链表 1 链表的概念及结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。 现实中的链表结构 数据结构中的链表结构 1.链式结构在逻辑上是连续的,但在物理上不一定是…

开启数据库审计 db,extended级别或os级别)并将审计文件存放到/opt/oracle/audit/下

文章目录 1、登录到数据库2、查看审计状态3、创建审计目录4、启用审计5、设置审计文件路径5、再次查看结果 1、登录到数据库 使用SQL*Plus或者其他Oracle数据库客户端登录到数据库。 sqlplus / as sysdba;2、查看审计状态 show parameter audit;目前是DB状态,并且…

matplotlib 绘制双纵坐标轴图像

效果图: 代码: 由于使用了两组y axis,如果直接使用ax.legend绘制图例,会得到两个图例。而下面的代码将两个图例合并显示。 import matplotlib.pyplot as plt import numpy as npdata np.random.randint(low0,high5,size(3,4)) …

2023年最新十大地推拉新接单平台,都是一手单 官签渠道

2023年做拉新推广的地推人员,一定不要错过这十个接单平台,助你轻松找到一手单,这10个平台分别是 1. 聚量推客: “聚量推客”汇聚了众多市场上有的和没有的地推网推拉新接单项目,目前比较火热,我们做地推和…

【leaflet】学习笔记5 自定义控制层、多图层及其控制 重构

▒ 目录 ▒ 🛫 导读开发环境 1️⃣ 重构data.js 数据抽取MyMap 面向对象编程继承MyMap类 2️⃣ d5. 自定义控制层、多图层及其控制示例效果自定义控制层多图层及其控制 🛬 文章小结📖 参考资料 🛫 导读 开发环境 版本号描述文章…

电子病历编辑器源码(Springboot+原生HTML)

一、系统简介 本系统主要面向医院医生、护士,提供对住院病人的电子病历书写、保存、修改、打印等功能。本系统基于云端SaaS服务方式,通过浏览器方式访问和使用系统功能,提供电子病历在线制作、管理和使用的一体化电子病历解决方案&#xff0c…

CTFhub-RCE-过滤cat

查看当前目录:输入:127.0.0.1|ls 127.0.0.1|cat flag_42211411527984.php 无输出内容 使用单引号绕过 127.0.0.1|cat flag_42211411527984.php|base 64 使用双引号绕过 127.0.0.1|c""at flag_42211411527984.php|base64 使用特殊变量绕过 127.0.0.…

计算机毕业设计基于java+springboot+vue的实验室管理系统

项目介绍 系统中的功能模块主要是实现管理员;首页、个人中心、实验室管理、用户管理、实验室申请管理、设备管理、设备报备管理、设备申请管理、消耗品管理、消耗品领取管理、论坛管理、系统管理,用户前台;首页、实验室、设备、消耗品、论坛…

无需公众号实现微信JSSDK分享卡片!Safari浏览器分享到微信自动成卡片!

摘要 要在微信分享卡片&#xff0c;需要接入微信自家的JSSDK&#xff0c;比较麻烦&#xff0c;还需要认证公众号&#xff0c;但是如果你没有这样的条件&#xff0c;那么你也可以试试使用iOS的Safari浏览器轻松实现&#xff0c;只需要在html中加入3个meta即可。 代码 <!DO…

Linux(2):初探

Linux 是什么 Linux 就是一套操作系统。Linux 就是核心与系统呼叫接口那两层。 应用程序不算 Linux。 Linux 提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构&#xff0c; 这个架构是沿袭Unix 良好的传统来的&#xff0c;相当的稳定而功能强大。 在 Lin…
最新文章