C++ 最长单词 & stringstream的使用

一个以 . 结尾的简单英文句子,单词之间用单个空格分隔,没有缩写形式和其它特殊形式,求句子中的最长单词。

输入格式
输入一行字符串,表示这个简单英文句子,长度不超过 500

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

输入样例:
I am a student of Peking University.
输出样例:
University

本题需要注意的是处理最后一个.符号即可。
利用stringstream进行处理,这里简单记录一下。

#include 
#include 
#include 
using namespace std;

int main ()
{
    string s, str, maxs;
    getline(cin, s);
    int maxn = -1;
    stringstream ssin(s);

    while(ssin >> str) {
        int len = str.size();
        if(str[len - 1] == '.') {
            len --;
            str = str.substr(0, len);
        }
        if(len > maxn) {
            maxn = len;
            maxs = str;
        }
    }
    cout<<maxs<<endl;
    return 0;
}

stringstream:
stringstream 是 C++ 标准库中的一个类,它提供了一个将字符串视为输入或输出流的机制。stringstream 可以方便地进行字符串和其他基本数据类型之间的转换,例如从字符串中提取数字,或将数字转换为字符串。
创建一个stringstream 对象 ssin,并将输入的字符串 s 初始化为该对象的内容,将输入的字符串分割成一个个单词,然后通过循环逐个处理这些单词。这样可以方便地处理字符串中的每个单词而不用担心空格的位置。

你可能感兴趣的:(力扣,字符串,c++)