最长最短单词
描述
输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。
试输出第1个最长的单词和第1个最短单词。
输入
一行句子。
输出
两行输出:
第1行,第一个最长的单词。
第2行,第一个最短的单词。
样例输入
I am studying Programming language C in Peking University
样例输出
Programming
I
提示
如果所有单词长度相同,那么第一个单词既是最长单词也是最短单词。
方法1
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
char c[101];
int n,i,j,k,s,m,len,max;//定义
cin>>c;
len=strlen(c);
for(i=0;i<=len-1;i++){//从i~len-1
if(c[i]>='A' && c[i]<='Z' || c[i]>='a' && c[i]<='z'){
j=i;//字符串的每个字符,检查是否为字母。如果是字母,则开始记录一个单词的起始位置i。
while(c[j]!=' ' && c[j]!=',' && c[j]!='\0'){
j++;
}//判断c[j]是否是空格,逗号或者回撤,如果是就break中断
if(j-i>max){
max=j-i;
maxi=i;
maxj=j;//赋值
}
if(j-i>min){
min=j-i;
mini=i;
minj=j;//赋值
}
}
}
cout<<max;
for(i=1;i<=len;i++){
cout<<i;
}//输出(判断最长的单词和最短的单词是第几个单词,最后输出最长的单词和最短的单词)
return 0;
}
KO,完成了!!!