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…

TypeScript(二) 基础类型

1. typescript的基础类型 数据类型关键字描述任意类型any生命any的变量可以赋值任意类型的值数字类型number整数或分数字符串类型string使用单引号&#xff08;‘’&#xff09;或者双引号&#xff08;“”&#xff09;来表示字符串类型。反引号&#xff08;&#xff09;来定义…

前端 HTML 知识点之 HTML 介绍

1.1 HTML 1.1.1 定义 超文本标记语言&#xff08;英语&#xff1a;HyperTextMarkupLanguage&#xff0c;简称&#xff1a;HTML&#xff09;是一种用于创建网页的标准标记语言 HTML元素是构建网站的基石 标记语言&#xff08;markup language &#xff09; 由无数个标记&#…

黑马程序员-瑞吉外卖-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("…

Vue学习笔记之应用创建和基础知识

1、安装方式 CDN方式安装&#xff1a; <script src"https://unpkg.com/vue3/dist/vue.global.js"></script> 2、创建应用 使用Vue内置对象创建一个应用&#xff0c;基本代码结构如下&#xff1a; <script src"https://unpkg.com/vue3/dist/…

无代理快速访问github

无代理快速访问github 修改hosts文件&#xff0c;添加以下内容 140.82.112.3 github.com 199.232.69.194 github.global.ssl.fastly.net

嵌入式驱动开发需要会哪些技能?

嵌入式驱动开发是指在嵌入式系统中编写驱动程序&#xff0c;实现设备与计算机之间的通信。嵌入式驱动开发是指编写设备驱动程序&#xff0c;实现设备与计算机之间的通信。以下是一些嵌入式驱动开发的具体操作方法: 1&#xff09;了解硬件设备结构&#xff1a;在进行嵌入式驱动…

修复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;它通…

网络爬虫的基本原理、应用场景及注意事项

基本原理&#xff1a; 发送HTTP请求&#xff1a;网络爬虫首先通过编程方式模拟用户浏览器行为&#xff0c;向目标网站发送HTTP/HTTPS请求&#xff0c;获取网页内容。这一过程通常利用Python中的requests库或者Java的URLConnection、HttpClient等工具来实现。解析响应数据&…

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

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