当前位置: 首页 > news >正文

整行读字符串且需分割计算字符串个数

一. c/c++如何整行读取字符串或字符数组:

https://www.cnblogs.com/AlvinZH/p/6798023.html

 

二. 整行读取后的分割操作:

例题:hdu 2072(统计单词数)

输入:有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束

输出:输出每行(每组)的单词数目

Sample Input

you are my friend
#

Sample Output

4

分析题目:

水题,重点在于输入数据的处理

第一种方法:

使用C语言的库函数strtok来切割字符串。其好处在于,可以指定任意字符作为分隔符来切割单词。

然后用string类型的set集合(相同数据会自动排除)去保存这些数据,然后mylen=a.size();

代码:这种字符数据使用了字符数组

#include<iostream>
#include<set>
#include<string.h>
using namespace std;
int main()
{
    char str[1024];
    while(gets(str)&&str[0]!='#')
    {
        set<string> a;
        char *s=" ";
        char *token;
        token=strtok(str,s);
        while(token!=NULL)
        {
           a.insert(token);
           token=strtok(NULL,s);
        }
        cout<<a.size()<<endl;
    }
}
View Code

第二种方法:

程序中使用set、<sstream>(字符串流)中的istringstream以及string。

代码:这种字符数据使用了字符串

#include<iostream>
#include<set>
#include<cstdio>
#include<string.h>
#include<sstream>
using namespace std;
int main()
{
    string s;
    while(getline(cin,s)&&s!="#")
    {
        istringstream sin(s);
        set<string> words;
        string s2;
        while(sin>>s2)
        words.insert(s2);
        cout<<words.size()<<endl;
    }
    return 0;
}
View Code

转载于:https://www.cnblogs.com/Aiahtwo/p/10400256.html

相关文章:

  • 比特大陆新一轮裁员50%,回应称系人员调整
  • zabbix linux系统模板更新
  • 2019.2.20 c++ 知识梳理
  • 微信全局登录设计与实现
  • 朝鲜APT集团Lazarus通过KEYMARBLE Backdoor瞄准俄罗斯组织
  • Less 日常用法
  • 手机端车牌号码键盘的vue组件
  • 回归生活:清理微信公众号
  • Cisco Nexus 系列交换机NX-OS升级
  • React开发实战
  • 工作中总结前端开发流程--vue项目
  • Java各种IO流的总结
  • MySQL-事务管理(基础)
  • Vultr 教程目录
  • Navicat
  • [deviceone开发]-do_Webview的基本示例
  • [译] 怎样写一个基础的编译器
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 4. 路由到控制器 - Laravel从零开始教程
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Koa2 之文件上传下载
  • LeetCode18.四数之和 JavaScript
  • Linux各目录及每个目录的详细介绍
  • Netty 4.1 源代码学习:线程模型
  • Vue.js-Day01
  • 闭包,sync使用细节
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • AI算硅基生命吗,为什么?
  • ​520就是要宠粉,你的心头书我买单
  • #pragma 指令
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (Ruby)Ubuntu12.04安装Rails环境
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .net的socket示例
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • /dev/sda2 is mounted; will not make a filesystem here!
  • :“Failed to access IIS metabase”解决方法
  • @Autowired @Resource @Qualifier的区别
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [30期] 我的学习方法
  • [Android]使用Retrofit进行网络请求
  • [Effective C++读书笔记]0012_复制对象时勿忘其每一部分
  • [Google Guava] 2.1-不可变集合
  • [HOW TO]如何在iPhone应用程序中发送邮件
  • [IE9] GPU硬件加速到底是实用创新还是噱头
  • [JavaScript]_[初级]_[关于forin或for...in循环语句的用法]
  • [Leetcode] Permutations II
  • [LeetCode]—Permutations 求全排列