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

news2025/1/10 21:12:24


一.问题描述

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

比如:给定一行字符串: 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.coloradmin.cn/o/1220985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初始MySQL(七)(MySQL表类型和存储引擎,MySQL视图,MySQL用户管理)

目录 MySQL表类型和存储引擎 MyISAM MEMORY MySQL视图 我们先说说视图的是啥? 视图的一些使用细节 MySQL用户管理 原因 常见操作 MySQL表类型和存储引擎 -- 查看所有的存储引擎 SHOW ENGINES 我们常见的表有MyISAM InnoDB MEMORY 1.MyISAM不支持事务,也不支持外…

群晖7.2版本安装CloudDriver2(套件)挂载alist(xiaoya)到本地

CloudDrive是一个强大的多云盘管理工具,为用户提供包含云盘本地挂载的一站式的多云盘解决方案。挂载到本地后,可以像本地文件一样进行操作。 一、套件库添加矿神源 二、安装CloudDriver2 1、搜索安装 搜索框输入【clouddrive】,搜索到Clou…

抖音快手判断性别、年龄自动关注脚本,按键精灵开源代码!

这个是支持抖音和快手两个平台的,可以进入对方主页然后判断对方年龄和性别,符合条件的关注,不符合条件的跳过下一个ID,所以比较精准,当然你可以二次开发加入更多的平台,小红书之类的,仅供学习&a…

YOLO目标检测——PCB缺陷数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用:电子制造过程的质量控制、生产线的自动化检测、以及产品可靠性验证等方面数据集说明:PCB缺陷检测数据集,真实场景的高质量图片数据,数据场景丰富标签说明:使用lableimg标注软件标注,标注框质量…

修完这个 Bug 后,MySQL 性能提升了 300%

最近 MySQL 官方在 8.0.35 上修复了一个 bug: 这个 bug 是由 Mark Callaghan 发现的。Mark 早年在 Google MySQL 团队,后来去了 Meta MySQL,也主导了 RocksDB 的开发。 Mark 在 #109595 的 bug report 给出了非常详细的复现步骤 在官方修复后…

反转字符串中的单词

给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能会存在前导空格、尾随空格…

一键转换bmp到jpg,轻松优化你的图片管理

在数字世界中,图片是我们日常工作和生活中的重要组成部分。然而,不同的文件格式可能会给我们的图片管理带来诸多不便。这时,我们就需要一个简单而强大的工具来帮助我们轻松转换图片格式。今天,我们为大家带来了一款全新的bmp到jpg…

Paypal发布公开信,三月已过,PYUSD发展如何?

2023年8月8日,美国支付巨头Paypal正式宣布推出其稳定币PYUSD,成为美国传统大型金融机构发行稳定币的首家企业。 当时,正值美国SEC与加密交易所Coinbase、Binance的诉讼白热化,Paxos被迫停止发行BUSD的阶段,在此背景下&…

【计算机网络学习之路】网络基础1

文章目录 前言一. 计算机网络发展局域网和广域网 二. 网络协议三. OSI七层模型四. TCP/IP四层(五层)模型五. 计算机体系结构与网络协议栈六. 协议形式及局域网通信数据包封装与分用 七. 跨网络通信八. MAC地址与网络通信的理解结束语 前言 本系列文章是…

IP池大小重要吗?

我们在寻找靠谱的IP代理时也经常遇到一个问题,IP代理池是什么?大小有何影响。今天就来跟大家普及一下,IP代理池大小的是否重要? 一、IP代理池是什么? I\P代理池是一个存储大量代理服务器IP地址的集合。它是一个由多个…

CTF-PWN环境搭建手册

工欲善其事必先利其器,作为一名CTF的pwn手,一定要有自己的专用解题环境。本文将详细记录kali下的pwn解题环境的安装过程,B站也会配备配套视频。 安装前的准备工作 虚拟机环境 VMware WorkStation VM版本安装教程 1. 下载Kali的VM虚拟机文件…

flink的window和windowAll的区别

背景 在flink的窗口函数运用中,window和windowAll方法总是会引起混淆,特别是结合上GlobalWindow的组合时,更是如此,本文就来梳理下他们的区别和常见用法 window和windowAll的区别 window是KeyStream数据流的方法,其…

[Linux版本Debian系统]安装cuda 和对应的cudnn以cuda 12.0为例

写在前面 先检查自己有没有安装使用wget的命令,没有的话输入下面命令安装: apt-get install wget -y查看gcc的安装 sudo apt install gcc #安装gcc gcc --version #查看gcc是否安装成功 #若上述命令不成功使用下面的命令尝试之后再执行上面…

VS Code中常用插件推荐

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

epoll协程简述

协程的由来 【协程第二话】协程和IO多路复用更配哦~_哔哩哔哩_bilibili 协程类别:有栈(静态)协程, 无栈(动态协程) 协程epoll 当有需要等待的时候,就切换出去,要用汇编保存这个栈rsp 运行时,要根据协程上下文恢复出这个栈

ArmV8常用汇编指令

1.syntax用法 GNU汇编器的.syntax .syntax命令是ARM架构独有的命令,语法为 .syntax [unified | divided];作用是在汇编ARM指令时,指定按照什么样的语法规则进行汇编。如果在编写汇编语言时不使用该命令指定语法规则,那么默认采用.…

TDengine Restful Authorization 自定义Token

Restful 接口是 TDengine 最常用的接口,仅次于 JDBC。TDengine 支持 HTTP 和 HTTPS,但通常情况下,大家不想搞证书,又在内网环境中,采用 HTTP 方式比较多。但 HTTP 是明文传输,只要抓个包就知道账号密码了。…

23111705[含文档+PPT+源码等]计算机毕业设计SSM框架美妆商城全套电商购物

文章目录 **软件开发环境及开发工具:****项目功能介绍:****论文截图:****实现:****代码片段:** 编程技术交流、源码分享、模板分享、网课教程 🐧裙:776871563 软件开发环境及开发工具&#xff…

uart控制led与beep

仲裁模块代码: // 外设控制模块,根据uart接收到的数据,控制led与beep的标志信号。 module arbit(input wire sys_clk ,input wire sys_rst_n ,input wire pi_flag …

VBA如何快速识别Excel单元格中的文本数字

Excel中一种非常特殊的数字,这些数字看似数字,其实是文本格式(下文简称为文本数字),在单元格的左上角会有一个绿色小三角作为标志,如B1:B3单元格。 在编程时为什么需要区分普通数字和文本数字呢&#xff…