1149:最长单词2(C C++)

【题目描述】

一个以‘.’结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式。

【输入】

一个以‘.’结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式。

【输出】

该句子中最长的单词。如果多于一个,则输出第一个。

【输入样例】

I am a student of Peking University.

【输出样例】

University

【代码】

#include <iostream>
#include <cstring>
#include <cstdio> 
using namespace std;
int main()
{
	char a[2500];	//题目说明不超过500但是试了501-510运行都显示错误  不清楚为什么 给大点就完事 有人知道原因希望告知评论下
	gets(a);	
	int len=strlen(a);
	int k=0,max=-1,max_x;
	for(int i=0;i<len;i++)	//遍历 
	{
		if( (a[i] >= 'a' && a[i]<='z') || (a[i] >= 'A' && a[i] <='Z'))	//若为大小字母则 计数器 k++ 
		{
			k++;
		}
		else 		//若为 空格与点则 
		{
			if(k>max) 	//判断最大长度 
			{
				max=k;	//记录最大长度存入max中 
				max_x=i-max;	//记录最大单词的起始坐标 
			}
			k=0;	//计数器清零 
		}
	} 
	for(int i=max_x;i<max_x+max;i++)	//输出起点 为 max_x 长度为max的单词 
	cout<<a[i];
}

版权声明:本文为weixin_50901683原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。