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;
}