当前位置: 代码迷 >> 综合 >> 1149:最长单词2
  详细解决方案

1149:最长单词2

热度:43   发布时间:2024-01-30 13:53:27.0

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

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

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

【输入样例】

I am a student of Peking University.

【输出样例】

University


【源代码】

#include <iostream>
using namespace std;char sentence[500] = {};
int main()
{cin.get(sentence, 500);int length = strlen(sentence);int sum = 0; // 单词长度;int max_sum = 0; // 最长的单词长度;int max_begin = 0; // 该单词下标起点;for (int i = 0; i < length; i++){if ((sentence[i] != ' ') && ((sentence[i] != '.'))){sum++;}else if ((sentence[i] == ' ') || (sentence[i] == '.')){if (sum > max_sum){max_sum = sum; // 更新最长长度;max_begin = i - sum; // 更新该单词下标起点;}sum = 0; // 重置单词长度;}}for (int i = max_begin; i < (max_begin + max_sum); i++){cout << sentence[i];}cout << endl;return 0;
}