查找并输出一个句子中的最长单词

2019年4月11日 ACM校赛小结

第一次打ACM,发现自己真的是什么也不会。没关系,先总结一下这一次有思路但是没有做出来的题吧。

在一句英文中寻找最长单词

【 T4 】 最长单词

编写一个函数,输入一行字符,将此字符串中最长的单词输出。
输入仅一行,多个单词,每个单词间用一个空格隔开。单词仅由小写字母组成。所有单词的长度和不超过100000。如有多个最长单词,输出最先出现的。
【样 例】

Input:
I am a student
Output:
student

C语言代码实现:字符数组并计数

#include<stdio.h>	
#include<string.h>
int main()
{
	char a[100000]={'\0'},b[100000],c[100000];
	int i=0,j=0,l=0,len=0;
	gets(a);
	len=strlen(a);
	//统计字符串的长度,不包含'\0',但是包含空格
	for(i=0;i<=len;i++)
	//连a数组的结尾的\0'也算上,所以是<= 
		if(a[i]= =' ' || a[i]= ='\0')
		{
			b[j]='\0';
			if(j>l)
			{
				strcpy(c,b);
				//将数组b的内容复制到数组c中,注意写法!!
				l=j;
			}
				j=0;
			//这个要写在if的外面,
			//因为不论是否是最长单词,这个计数器都要清零,也就是从b[0]开始重新输入b数组_
		}
		else
		{
			b[j]=a[i];
			j++;
		}
	}
	puts(c);
	return 0;
}


C++代码实现:字符串变量

#include < iostream>
 #include < cstdio>
 #include < string>
using namespace std;
int main()
{
	string s,c="";          //定义两个字符串变量
	while(cin>>s)
	//cin读入字符串时遇到  “空格,Tab,和回车时停止”
	{
		if(s.size() >c.size() )        //如果s的长度大于c
		{
			c=s;
		}
	}
	cout<<c<<endl;
	return 0;
}
  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值