输入1行句子 (不多于 200 个单词,每个单词长度不超过 100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。 试输出第1个最长的单词和第1个最短单词。 用c++写
时间: 2024-10-04 22:03:39 浏览: 33
C++统计中英文大小写字母、数字、空格及其他字符个数的方法
在 C++ 中,你可以使用标准库函数和字符串处理来完成这个任务。下面是一个简单的示例程序,它读取一行输入,然后找到第一个最长和最短的单词:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
std::string findLongestWord(const std::string& input) {
std::istringstream iss(input);
std::string word;
std::vector<std::string> words;
while (iss >> word) {
if (!word.empty()) {
words.push_back(word);
}
}
if (words.empty()) {
return "";
}
std::string longest = *max_element(words.begin(), words.end(), [](const std::string& a, const std::string& b) { return a.size() < b.size(); });
std::string shortest = *min_element(words.begin(), words.end(), [](const std::string& a, const std::string& b) { return a.size() > b.size(); });
return "Longest word: " + longest + ", Shortest word: " + shortest;
}
int main() {
std::string line;
std::cout << "Enter a sentence: ";
getline(std::cin, line);
std::string result = findLongestWord(line);
std::cout << result << "\n";
return 0;
}
```
在这个程序中,我们首先从用户那里获取一行输入,并使用 `istringstream` 分割成单词存储在一个 vector 中。然后分别找出最长和最短的单词,通过比较每个单词的大小(字节长度)。最后返回结果。
注意:此代码假定用户输入的是有效的单词序列。如果输入不符合规范(例如含有标点符而非单词分隔),则需要额外的错误检查和处理。
阅读全文