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

每日一题——第一百二十一题

题目:找到一串字符串中最长的单词,打印单词,并打印其长度和开始的索引下标

#pragma once

#include<stdio.h>
#include<stdbool.h>
#include<ctype.h>
#include<string.h>

//找到一串字符串中最长的单词,打印单词,并打印其长度和开始的索引下标

void printfLongestWord(char* str) {

	int maxLength = 0;//最长单词的长度
	int currLength = 0;//当前单词的长度
	int startIndex = 0;//最长单词开始索引
	bool isInWord = false;//用于标记是否在单词中


	for (int i = 0; str[i] != '\0'; i++)
	{
		if (!isspace(str[i])) {//如果当前字符不是空格字符
		
		//首先判断他之前是否在单词的内部
			if (!isInWord) //之前不在单词内部
			{
				startIndex = i;//更新单词开始的索引
				isInWord = true;//修改状态
			}

			currLength++;//当前单词长度加1
		
		}
		else//遇到空字符了
		{
			if (isInWord) //判断之前在单词的内部
			{
				if (currLength > maxLength)//判断长度
				{
					maxLength = currLength;//更新最大长度
					startIndex = i - maxLength;//更新最长单词的起始索引
				}

				isInWord = false;//更新当前状态
				currLength = 0;//更新当前单词长度
			}
		}
		
	}

	//最后不要忘了处理字符串末尾的单词
	if (isInWord && currLength > maxLength) 
	{
		maxLength = currLength;
		startIndex = strlen(str) - maxLength;//更新最长单词的起始索引
	}

	//输出最长单词
	if (maxLength > 0)
	{
		printf("最长单词为 :%.*s\t开始索引为:%d\t 单词长度为:%d", maxLength, str + startIndex, startIndex, maxLength);//输出从给定字符串startIndex开始的长度为maxLength的子字符串
	}
	else
	{
		printf("没有输入单词\n");
	}
}

http://www.kler.cn/a/384963.html

相关文章:

  • 智能化健身房管理:Spring Boot与Vue的创新解决方案
  • IPsec传输模式与隧道模式的深度解析及应用实例
  • HAL库硬件IIC驱动气压传感器BMP180
  • 硬件知识10 线性稳压电源——二极管稳压、射级跟随器稳压、集成电路稳压
  • uni生成海报并保存
  • kubectl常用命令简介
  • 2024 网鼎杯 - 青龙组 Web WP
  • Chrome调试工具(查看CSS属性)
  • Java每日刷题之二分算法
  • TDengine 集群能力:超越 InfluxDB 的水平扩展与开源优势
  • ‌webdriver.Chrome()参数简介
  • 【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】题库(1)
  • acmessl.cn推荐一款好用的免费申请ssl证书的平台
  • 飞凌嵌入式FET527N-C核心板现已适配Android 13
  • Python/FastAPI 的并发能力对比
  • 【EMNLP2024】面向长文本的文视频表征学习与检索模型 VideoCLIP-XL
  • 人工智能——小白学习指南
  • 算法详解——链表的归并排序非递归解法
  • 持续优化,构建更好地 auto git commit 体验
  • JMM(一)[volatilr关键字、乐观锁和悲观锁]
  • 摄像机视频分析软件下载LiteAIServer视频智能分析平台裸土检测
  • 理解Web登录机制:会话管理与跟踪技术解析(一)
  • 【C++】std::cout与std::cin缓冲区
  • 在鱼皮的模拟面试里面学习有感
  • 【Linux基础IO】文件描述符分配规则 重定向
  • 从0开始学习Linux——文件目录