C语言基础:写一个函数,输入一行字符,将此字符串最长的单词输出

方法一:

#include<string.h>
int find_longest(char line[])//把数组传过来
{int is_alphabetic(char word);int i = 0;int length = 0;//统计每个字符串的长度int max = 0;//比max长就把值赋值给maxint place = 0;//最长单词的起始位置int point;//每个字符串第一个字符的下标for (i = 0; i <= strlen(line); i++)//字符有空格和'\0'{if (is_alphabetic(line[i])){length++;   }else //遇到空格或'\0'{point = i - length;if (length >= max)  //输入的字符串万一有相等的呢?{place = point;max = length;}length = 0;//重新统计下一个字符串长度}}return place;
}
int is_alphabetic(char word)//word形参,接收数组传来的实参line[i]
{if ((word >= 'a' && word <= 'z' )|| (word >= 'A' && word <= 'Z'))return 1;//是字母,返回1。elsereturn 0;//不是,返回0。
}
int main()
{int find_longest(char line[]);int is_alphabetic(char word);char line[100];int i = 0;printf("input one line:\n");gets(line);//输入可能不是单词,是空格,所以写一个函数判断printf("The longest word is:\n");for (i = find_longest(line); is_alphabetic(line[i]); i++)printf("%c", line[i]);printf("\n");return 0;
}

方法二:(错误),自己到时改正了会修改

#include<string.h>
void LongestWord(char str[], char word[])
{int max_len = 0;int len = 0;int i = 0;while (str[i] != '\0'){if (str[i] == ' '){str[i] = '\0';len = strlen(str);if (len > max_len){max_len = len;strcpy(word, str);str = str + len + 1;}}i++;}
}
int main()
{char line[100] = { 0 };char word[100] = { 0 };printf("input one line:\n");gets(line);LongestWord(line, word);printf("The longest word is : %s\n", word);return 0;
}

方法三:

#include<string.h>
void findlong(char str[], char word[]) {int i = 0, j = 0;int len = 0;while (str[i] != '\0') {j = i;while (str[j] != ' ' && str[j] != '\0')j++;len = j - i;if (len > strlen(word)){strncpy(word, str + i, len);//拷贝临时最长单词 }j++;i = j;}
}
int main() 
{char str[100] = { 0 };printf("请输入一个字符串:\n");gets(str);char word[20] = { 0 };findlong(str, word);printf("这个字符串最长单词为:\n%s\n", word);return 0;
}

方法四 :

#include<ctype.h>
#include<string.h>//获取最大单词
char CurWord[100];
char MaxWord[100];char* Get_MaxWord(const char* str)
{int len_cur = 0;//保存临时单词空间内的长度int len_max = 0;//保存最大单词空间内的长度while (*str != '\0'){if (isalpha(*str))//如果为真   代表指针str指向的字符是一个字母字符{CurWord[len_cur++] = *str;}else{if (len_cur > len_max){strcpy(MaxWord, CurWord);len_max = len_cur;//len_cur = 0;}len_cur = 0;}str++;}if (len_cur > len_max){strcpy(MaxWord, CurWord);}return MaxWord;
}
int main()
{char arr[100];printf("请输入一个字符串:\n");const char* str = gets(arr);printf("这个字符串最长单词为:\n%s", Get_MaxWord(str));return 0;
}

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

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

相关文章

JVM-字节码文件的组成

Java虚拟机的组成 Java虚拟机主要分为以下几个组成部分&#xff1a; 类加载子系统&#xff1a;核心组件类加载器&#xff0c;负责将字节码文件中的内容加载到内存中。 运行时数据区&#xff1a;JVM管理的内存&#xff0c;创建出来的对象、类的信息等等内容都会放在这块区域中。…

100.乐理基础-五线谱-是否需要学习五线谱

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;99.乐理基础-简谱的多声部-CSDN博客 简谱与五线谱的区别&#xff0c;各自的优劣势、使用场景、范围等&#xff1a; 要搞懂这个问题&#xff0c;其实核心就是四个词&#xff1a;首调、固定调、单声部、多声部 首调、…

如何在Ubuntu安装配置SVN服务端并实现无公网ip访问内网资料库

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改au…

黑马程序员-瑞吉外卖-day5

修改实体类 package com.itheima.reggie.entity;import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode;i…

kali系统入侵电脑windows(win11系统)渗透测试,骇入电脑教学

本次渗透测试将使用kali虚拟机&#xff08;攻击机&#xff09;对本机&#xff08;靶机&#xff09;进行入侵并监控屏幕 声明&#xff1a;本篇仅仅是将本机作为靶机的一次简易渗透测试&#xff0c;实际情况中基本不可能出现如此简单的木马骇入&#xff08;往往在上传木马时就被防…

【Linux】第三十八站:信号处理

文章目录 一、信号处理二、再谈进程地址空间三、内核如何实现信号的捕捉四、sigaction 一、信号处理 我们知道&#xff0c;信号保存以后&#xff0c;会在合适的时候进行处理这个信号。 那么信号是如何被处理的&#xff1f;什么时候进行处理呢&#xff1f; 当我们的进程从内核…

破解Windows系统密码(保姆级教学)

前言: 本篇博客只是技术分享并非非法传播知识,实验内容均是在虚拟机中进行,并非真实环境 正文: 看到题目大家都已经晓得这篇博客是干嘛了,我也不废话了,直接上win7素材 需要windows10破解过程的关注后在下面评论"已关注,请私聊"我会私发给你 一.windows7电脑密码破解…

分布式空间索引了解与扩展

目录 一、空间索引快速理解 &#xff08;一&#xff09;区域编码 &#xff08;二&#xff09;区域编码检索 &#xff08;三&#xff09;Geohash 编码 &#xff08;四&#xff09;RTree及其变体 二、业内方案选取 三、分布式空间索引架构 &#xff08;一&#xff09;PG数…

DCNv4:对视觉应用的动态和稀疏算子的重新思考

摘要 https://arxiv.org/pdf/2401.06197.pdf 我们介绍了可变形卷积v4&#xff08;DCNv4&#xff09;&#xff0c;这是一种高效且有效的运算符&#xff0c;专为广泛的视觉应用而设计。DCNv4解决了其前身DCNv3的局限性&#xff0c;通过两个关键改进&#xff1a;1. 去除空间聚合中…

Springmvc-@RequestBody

SpringBoot-2.7.12 请求的body参数无法转换&#xff0c;服务端没有报错信息打印&#xff0c;而是响应的状态码是400 PostMapping("/static/user") public User userInfo(RequestBody(required false) User user){user.setAge(19);return user; }PostMapping("…

修复idea,eclipse ,clion控制台中文乱码

控制台乱码问题主要原因并不在编译器IDE身上&#xff0c;还主要是Windows的控制台默认编码问题。。。 Powershell&#xff0c;cmd等默认编码可能不是UTF-8&#xff0c;无需改动IDE的settings或者properties&#xff08;这治标不治本&#xff09;&#xff0c;直接让Windows系统…

小土堆pytorch学习笔记003 | 下载数据集dataset 及报错处理

目录 1、下载数据集 2、展示数据集里面的内容 3、DataLoader 的使用 例子&#xff1a; 结果展示&#xff1a; 1、下载数据集 # 数据集import torchvisiontrain_set torchvision.datasets.CIFAR10(root"./test10_dataset", trainTrue, downloadTrue) test_set …

uniapp,页面当有按钮的时候,可以做一个动态的效果

效果&#xff1a; 这个是当点着按钮的时候没有松开按钮的效果&#xff08;没有阴影&#xff09; 这个是当松开按钮的效果&#xff08;有阴影&#xff09; 原理讲解&#xff1a; 这段代码实现的业务逻辑是在一个Vue组件中控制“现金”按钮的阴影效果。具体来说&#xff0c;它通…

云上高可用系统-韧性设计模式

一、走近韧性设计模式 &#xff08;一&#xff09;基本概念 韧性设计模式是一系列在软件工程中用于提高系统韧性的设计原则、策略、实践和模式。韧性&#xff08;Resilience&#xff09;在这里指的是系统对于各种故障、异常和压力的抵抗能力&#xff0c;以及在遭受这些挑战后…

pnpm 源不对 Will retry in 10 seconds. 2 retries left.

现象 由于使用npm config set registry 切换淘宝源时&#xff0c;把地址打错了。 后面使用pnpm install 时出现 此时无论我怎么使用npm config set registry 或者pnpm config set registry 切回正确的源均没有效果。 解决 在其他用npm的项目运行一下npm i 再运行pnpm i 即…

经典目标检测YOLO系列(三)YOLOV3的复现(1)总体网络架构及前向处理过程

经典目标检测YOLO系列(三)YOLOV3的复现(1)总体网络架构及前向处理过程 和之前实现的YOLOv2一样&#xff0c;根据《YOLO目标检测》(ISBN:9787115627094)一书&#xff0c;在不脱离YOLOv3的大部分核心理念的前提下&#xff0c;重构一款较新的YOLOv3检测器&#xff0c;来对YOLOv3有…

时序预测 | MATLAB实现ICEEMDAN-SSA-GRU、ICEEMDAN-GRU、SSA-GRU、GRU时间序列预测对比

时序预测 | MATLAB实现ICEEMDAN-SSA-GRU、ICEEMDAN-GRU、SSA-GRU、GRU时间序列预测对比 目录 时序预测 | MATLAB实现ICEEMDAN-SSA-GRU、ICEEMDAN-GRU、SSA-GRU、GRU时间序列预测对比预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 时序预测 | MATLAB实现ICEEMDAN…

解密人工智能:探索机器学习奥秘

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;网络奇遇记、数据结构 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. 机器学习的定义二. 机器学习的发展历程三. 机器学习的原理四. 机器学习的分类…

ElevationStation:一款专为红队设计的权限提升测试工具

关于ElevationStation ElevationStation是一款专为红队设计的权限提升测试工具&#xff0c;在该工具的帮助下&#xff0c;广大红队研究人员和渗透测试人员可以轻松实现SYSTEM权限令牌的获取&#xff0c;并通过将目标账号提升至SYSTEM权限来测试目标操作系统的安全态势。 Elev…

【Spark系列3】RDD源码解析实战

本文主要讲 1、什么是RDD 2、RDD是如何从数据中构建 一、什么是RDD&#xff1f; RDD&#xff1a;弹性分布式数据集&#xff0c;Resillient Distributed Dataset的缩写。 个人理解&#xff1a;RDD是一个容错的、并行的数据结构&#xff0c;可以让用户显式的将数据存储到磁盘…