当前位置: 首页 > article >正文

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.kler.cn/news/136430.html

相关文章:

  • uniapp一键打包
  • vue3中watch的用法以及使用场景以及与watchEffect的使用对比
  • QT:MaintenanceTool 模块安装工具
  • Ceph入门到精通-Osd db扩容
  • AIGC底层技术揭秘
  • vue3父组件控制子组件表单验证及获取子组件数值方法
  • 记GitLab服务器迁移后SSH访问无法生效的问题解决过程
  • NX二次开发UF_CAM_ask_lower_limit_plane_status 函数介绍
  • 【PyQt小知识 - 3】: QComboBox下拉框内容的设置和更新、默认值的设置、值和下标的获取
  • 【Kingbase FlySync】命令模式:安装部署同步软件,实现KES到KES实现同步
  • vscode设置前进、后退快捷键
  • 社会媒体营销提问常用的ChatGPT通用提示词模板
  • 什么时候用@MapperScan 注解?
  • uniapp开发小程序,包过大解决方案
  • 服务器数据恢复—OCFS2下raid5磁盘损坏导致阵列崩溃的数据恢复案例
  • 存储配置和挂载方式
  • esbuild打包
  • Ubuntu18.04运行gazebo的launch文件[model-4] process has died报错
  • BUUCTF [BJDCTF2020]鸡你太美 1
  • 米勒拉宾算法——素性测试
  • XCTF(攻防世界)---Web新手区题目WP
  • vscode 设置vue3 通用页面模板
  • WSL2安装ubuntu及修改安装位置,设置Ubuntu开机启动链接ssh服务
  • 京东小程序:无代码开发实现API集成,连接电商平台、CRM和客服系统
  • AD9361寄存器功能笔记之本振频率设定
  • 如何使用Docker部署Apache+Superset数据平台并远程访问?