一只猪


私信TA

用户名:TuT99

访问量:11811

签 名:

拥有良好的积累,并且一直在路上,我相信自己有无限的可能

等  级
排  名 70
经  验 10259
参赛次数 6
文章发表 68
年  龄 21
在职情况 学生
学  校 哔哩哔哩大学
专  业 计算机科学与技术

  自我简介:

代码解析:

引入了必要的头文件,包括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 人评分

  评论区

  • «
  • »