代码解析:
引入了必要的头文件,包括iostream、string和sstream和vector头文件用于使用向量容器。
接下来,定义了一个getWords函数,该函数接受一个字符串sentence作为参数,并返回该字符串中的所有单词。在函数内部,使用字符串流istringstream将输入的句子分割为单词,并将每个单词存储在向量容器words中。
然后,定义了一个findLongestWord函数,它接受一个字符串向量words作为参数,并返回向量中最长的单词。在函数内部,使用一个循环遍历每个单词,并通过比较单词的长度大小来找到最长的那个单词。
还定义了一个findShortestWord函数,它接受一个字符串向量words作为参数,并返回向量中最短的单词。
在主函数main中,我们首先使用getline函数从标准输入中读取整行输入的句子,并将其存储在变量sentence中。
接下来,我们调用getWords函数将句子分割为单词,并将结果存储在向量words中。
然后,我们分别调用findLongestWord和findShortestWord函数来找到最长的单词和最短的单词,并将结果分别存储在longestWord和shortestWord变量中。
最后,我们使用cout对象依次输出最长的单词和最短的单词,并在行尾输出换行符。
参考代码:
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
vector<string> getWords(const string& sentence) {
vector<string> words;
istringstream iss(sentence);
string word;
while (iss >> word) {
words.push_back(word);
}
return words;
}
string findLongestWord(const vector<string>& words) {
string longestWord = "";
for (const string& word : words) {
if (word.length() > longestWord.length()) {
longestWord = word;
}
}
return longestWord;
}
string findShortestWord(const vector<string>& words) {
string shortestWord = words[0];
for (const string& word : words) {
if (word.length() < shortestWord.length()) {
shortestWord = word;
}
}
return shortestWord;
}
int main() {
string sentence;
getline(cin, sentence);
vector<string> words = getWords(sentence);
string longestWord = findLongestWord(words);
string shortestWord = findShortestWord(words);
cout << longestWord << endl;
cout << shortestWord << endl;
return 0;
}
0.0分
3 人评分
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:466 |
简单的a+b (C语言代码)浏览:564 |
上车人数 (C语言代码)浏览:816 |
最长单词 (C语言代码)浏览:1474 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:818 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)from DQM浏览:773 |
母牛的故事 (C语言代码)浏览:1045 |
Hello, world! (C语言代码)浏览:766 |
1126题解浏览:649 |
1128题解(返回值为数组的情况)浏览:571 |