前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++中的stringstream及其应用

C++中的stringstream及其应用

作者头像
鲸落c
发布2022-11-14 16:41:00
4150
发布2022-11-14 16:41:00
举报
文章被收录于专栏:鲸落学习笔记鲸落学习笔记

theme: channing-cyan highlight: a11y-dark


小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

作者:鲸落

主页:https://juejin.cn/user/3359763903030983

stringstream 将字符串对象与流相关联,允许您从字符串中读取,就好像它是一个流(如 cin)。

基本方法是——

clear() — 清除流 str() — 获取和设置其内容存在于流中的字符串对象。 运算符 << — 将字符串添加到 stringstream 对象。 运算符 >> — 从 stringstream 对象中读取内容,

stringstream 类在解析输入时非常有用。

应用:

计算字符串中的单词数

代码语言:javascript
复制
例子:
输入:juejin juejin juejin
输出:3

输入 : juejin Ide
输出:2
代码语言:javascript
复制
#include <bits/stdc++.h>
using namespace std;

int countWords(string str)
{
    stringstream s(str);
    string word; 

    int count = 0;
    while (s >> word)
        count++;
    return count;
}

int main()
{
    string s = "juejin juejin juejin juejin "
            "contribution placements";
    cout << " 数量为:" << countWords(s);
    return 0;
}

输出:

代码语言:javascript
复制
  数量为:6

打印字符串中单个单词的频率

代码语言:javascript
复制
输入 : juejin For juejin Quiz juejin Quiz demo demo
输出:对于 -> 1
         juejin -> 3
         Quiz -> 2
         demo -> 2

输入:Word String demo String
输出:demo -> 1
     String -> 2
     Word -> 1 
代码语言:javascript
复制
#include <bits/stdc++.h>
using namespace std;

void printFrequency(string st)
{
    // each word it mapped to it's frequency
    map<string, int> FW;
    stringstream ss(st); // Used for breaking words
    string Word; // To store individual words

    while (ss >> Word)
        FW[Word]++;

    map<string, int>::iterator m;
    for (m = FW.begin(); m != FW.end(); m++)
        cout << m->first << " -> "
            << m->second << "\n";
}

int main()
{
    string s = "juejin For juejin Ide";
    printFrequency(s);
    return 0;
}

输出:

代码语言:javascript
复制
For -> 1
juejin -> 2
Ide -> 1

更多相关内容

在 C++ 中标记字符串

C++ 中的 std::string 类

C/C++ 中的 strrchr() 函数

C++ 中的原始字符串文字及C++ 中的字符串数组(1-2)

C++ 中的字符串数组(5 种不同的创建方式3-5)


有什么问题可以在评论区告诉我,我会第一时间回复大家,感谢您的阅览。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 更多相关内容
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档