题目:
由键盘输入一行仅由英文字母及空格组成的字符,编程实现(相邻单词之间用一个空格或多个空格隔开)。
(1)输出每个单词及其长度。
(2)输出最长的单词。
输入样例:
I am a boy
输出样例:
I 1
am 2
a 1
boy 3
#include<iostream>
using namespace std;
bool character(char c)
{
return ((c>='a'&&c<='z')||(c>='A'&&c<='Z'))?true:false;
}
int main()
{
char str[50];
char max_word[50];
cout<<"enter a line character include black:";
gets(str);
int i=0,first=0,len,max_len=0,j,k;
while(str[i]!='\0')
{
//找每个单词的首下标
while((!character(str[i]))&&str[i]!='\0')
{
i++;
}
first=i;
//找每个单词的末下标
while(character(str[i]))
{
i++;
}
//输出单词
for(j=first;j<i;j++)
{
cout<<str[j];
}
//输出单词长度
len=i-first;
cout<<" "<<len<<endl;
//求最长单词
if(len>max_len)
{
max_len=len;
for(k=0;k<len;k++)
{
max_word[k]=str[first+k];
}
max_word[k]='\0';
}
}
cout<<"the longest word is:"<<max_word<<endl;
return 0;
}