用C++程序编写输入一个以'.'结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式;输出该句子中最长的单词。
时间: 2024-10-27 07:09:12 浏览: 8
在C++中,你可以通过以下步骤编写这样的程序:
1. 首先,我们需要从用户那里获取输入,可以使用`std::getline`函数读取一行包含英文句子的字符串。
2. 然后,我们将字符串分割成单词,这通常需要遍历整个字符串,并在遇到空格时将单词添加到一个存储列表中,例如`std::vector<std::string>`。
3. 接下来,我们遍历这个单词列表,使用`std::max_element`函数找到最长的单词,同时记录它的长度。
4. 最后,我们输出最长的单词及其长度。
下面是一个简单的示例代码片段:
```cpp
#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
std::string longestWord(const std::string& sentence) {
std::istringstream iss(sentence);
std::vector<std::string> words;
std::string word;
while (iss >> word) {
words.push_back(word);
}
if (words.empty()) return "";
auto max_length = *std::max_element(words.begin(), words.end(), [](const std::string& a, const std::string& b) { return a.length() < b.length(); });
return max_length;
}
int main() {
std::string input;
std::cout << "请输入一个以'.'结尾的英文句子(单词间用空格分隔): ";
std::getline(std::cin, input);
// 检查输入是否以'.'结束
if (input.back() != '.') {
std::cerr << "输入错误!请确保句子以'.'结尾。\n";
return 1;
}
std::string longest = longestWord(input);
if (longest.empty()) {
std::cout << "句子中没有单词。\n";
} else {
std::cout << "最长的单词是: " << longest << ", 长度为: " << longest.size() << ".\n";
}
return 0;
}
```
阅读全文