编程题#3:最长单词2

描述

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

 

输入

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

 

输出

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

#include <iostream>
using namespace std;
char s[500];
int main() {
    cin.getline(s,500);
    int max = 0, n = 0, p = 0; 
    // max用来保存最大单词长度 ,n用来保存当前单词长度 
    // p 表示最大单词最后字母位置 
    for (int i = 0; s[i] !='\0'; i++) {
        if (s[i] == ' ') {
            n = 0;
        }
        else if ((s[i] >='A' && s[i] <='Z') || (s[i] >= 'a' && s[i] <='z')) {
            n++;
        }
        if (max < n) {
            max = n;
            p = i;
        }
    }
    for (int j = p - max + 1; j <= p; j++)
        cout << s[j];
        cout << endl;
    return 0;
}

 

posted on 2017-10-26 12:33  平行线不会相交  阅读(935)  评论(0)    收藏  举报

导航