统计句子中的不同单词个数(句子中含有标点符号,单词不区分大小写)

#include<iostream>
#include<sstream>
#include<string>
#include<cctype>
#include<set>
using namespace std;
set<string> dict;
int main()
{
    string s,buf;
    while(getline(cin,s))
    {
        dict.clear();
        for(int i=0;i<s.length();i++)
        {
            if(isalpha(s[i]))    s[i]=tolower(s[i]);//将字母统一转化为小写
            else                s[i]=‘ ‘;//将非字母的字符全部转为空格
        }
        stringstream ss(s);
        while(ss>>buf)    dict.insert(buf);
        for(set<string>::iterator it=dict.begin();it!=dict.end();it++)
        {
            cout<<*it<<endl;
        }
    }

    return 0;
}
时间: 2025-01-07 01:26:12

统计句子中的不同单词个数(句子中含有标点符号,单词不区分大小写)的相关文章

【C语言】输入一个字符串,统计其中的单词个数,将第一个单词的首字母改为大写,并输出改写后的字符串

#include<stdio.h> int main() { char a[100]; int i, j=1; printf("请输入一串字符:"); gets_s(a); for (i = 0; a[i] != '\0'; i++)/*找出单词个数*/ { if (a[i] == ' ') j += 1; } printf("单词个数:%d\n", j); if (a[0] >= 'a' && a[0] <= 'z')/*判

1133: 单词个数统计

题目描述 从键盘输入一行字符,长度小于1000.统计其中单词的个数,各单词以空格分隔,且空格数可以是多个. 输入 输入只有一行句子.仅有空格和英文字母构成 输出 单词的个数 样例输入 stable marriage problem Consists of Matching members 样例输出 7 #include<stdio.h> #include<string.h> int main() { int i, n, m; char str[1000]; gets(str); m

C语言:统计输入的一行英文句子中的字母及单词个数,带注解!

//通过键盘输入一行英文句子,统计其中的英文字母和单词的数量,单词之间用空格分开(标点符号不算单词):#include<stdio.h> #include<string.h>#include<stdlib.h>main(){ char string[100];//根据拟从键盘输入的字串的长度需要适当调整,要避免输入的长度超出设定的范围.  char c; int i, num=0,sum=0,word=0; //定义 word 用来指示一个单词是不是结束或新单词是否开始

统计一个字符串中的单词的个数,并打印各个单词

/*测试数据:Shen zhen is a beautiful city!*/ /*运行结果:Word:6 Shen zhen is a beautiful city!*/ #include<stdio.h> #define SIZE 1000 void wordCount(char *str) { int count = 0, flag = 0; char *p = str; while (*p != '\0'){ while (*p == 32){ if (*(p + 1) == 0){/

统计txt文档中的单词个数

public class Bean { private char name; private double pinlv; public Bean(char name,double pl) { this.name=name; this.pinlv=pl; } public char getName() { return name; } public void setName(char name) { this.name = name; } public double getPinlv() { re

统计单词个数

驱动开发的第六章让我了解了统计单词个数的Linux驱动程序开发和测试的完整过程. Linux系统将每一个驱动都映射成一个文件,这些文件被称为设备文件或驱动文件,都保存在/dev目录中.由于大多数Linux驱动都有与其对应的设备文件,因此与Linux驱动交换数据就变成了与设备文件交换数据. 编写Linux驱动程序的步骤:第一步,建立Linux驱动骨架(装载和卸载Linux驱动):第二步,注册和注销设备文件:第三步,指定与驱动相关的信息:第四步,指定回调函数:第五步,编写业务逻辑:第六步,编写mak

NOIP2001 统计单词个数

题三 统计单词个数(30分) 问题描述 给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个).要求将此字母串分成k份(1<k<=40),且每份中包含的单词个数加起来总数最大(每份中包含的单词可以部分重叠.当选用一个单词之后,其第一个字母不能再用.例如字符串this中可包含this和is,选用this之后就不能包含th). 单词在给出的一个不超过6个单词的字典中. 要求输出最大的个数. 输入格式 去部输入数据放在文本文件input

codevs 1040 统计单词个数

1040 统计单词个数 2001年NOIP全国联赛提高组  题目等级 : 黄金 Gold 题目描述 Description 给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个).要求将此字母串分成k份(1<k<=40),且每份中包含的单词个数加起来总数最大(每份中包含的单词可以部分重叠.当选用一个单词之后,其第一个字母不能再用.例如字符串this中可包含this和is,选用this之后就不能包含th)(管理员注:这里的不能再用指

第六章第一个Linux驱动程序:统计单词个数

第六章介绍如何在多种平台,使用多种方法测试Linux驱动. 本章主讲统计单词个数的算法的实现技术:Linux驱动.统计单词个数的功能是封装在Linux驱动中的.驱动不一定是直接和硬件打交道的,还可以喝普通的library一样提供其他程序的调用来实现特定功能的. 第一节Linux驱动到底是个什么东西 Linux驱动和普通的Linux API没有本质上的区别,只是使用Linux驱动的方式和使用Linux API的方法不同. Linux系统将每一个驱动都映射成一个文件,这些文件称为设备文件或驱动文件,