首页 > 编程语言 >C++ //练习 11.4 扩展你的程序,忽略大小写和标点。例如,“example.“、“exmaple,“和”Example“应该递增相同的计数器。

C++ //练习 11.4 扩展你的程序,忽略大小写和标点。例如,“example.“、“exmaple,“和”Example“应该递增相同的计数器。

时间:2024-04-02 11:03:55浏览次数:28  
标签:word cout 11.4 练习 C++ include Example size

C++ Primer(第5版) 练习 11.4

练习 11.4 扩展你的程序,忽略大小写和标点。例如,“example.”、"exmaple,"和”Example"应该递增相同的计数器。

环境:Linux Ubuntu(云服务器)
工具:vim

 

代码块

/*************************************************************************
	> File Name: ex11.4.cpp
	> Author: 
	> Mail: 
	> Created Time: Tue 02 Apr 2024 09:42:21 AM CST
 ************************************************************************/

#include<iostream>
#include<iomanip>
#include<cctype>
#include<string>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
using namespace std;

int main(){
    map<string, size_t> wordCount;
    set<string> unique = {".", ","};
    string word;
    
    cout<<"Enter words: ";
    while(cin>>word){
        transform(word.begin(), word.end(), word.begin(), ::tolower);
        if(ispunct(word[word.size()-1])){
            word.erase(word.size()-1);
        }
        ++wordCount[word];
        if(cin.get() == '\n'){
            break;
        }
    }

    cout<<"Word Count: "<<endl;
    for(const auto &w : wordCount){
        cout<<"Word: "<<setw(8)<<left<<w.first<<" Count: "<<w.second<<endl;
    }

    return 0;
}
运行结果显示如下

在这里插入图片描述

标签:word,cout,11.4,练习,C++,include,Example,size
From: https://blog.csdn.net/navicheung/article/details/137258986

相关文章

  • 【Python BUG】ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CX
    报错ImportError:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:version`CXXABI_1.3.9‘notfound背景开发的一个python预测程序(算法分析+应用服务),在原本的linux服务器下配置了开发环境,打包后在另一台凝思服务器解压,发现报错。应该是linux系统之间存在差异,动态库缺失......
  • C++ | filesystem file not found
    1.filesystem使用过程中遇到的错误如果你用的GCC版本<GCC8.0,则直接#include<filesystem>会报错,说找不到文件Nosuchfileordirectory对于这种情况,可以如下操作。如果是GCC8.0+和C++17以上,则只需要#include<filesystem>①改include路径#include<experimental/filesystem......
  • C++ list
    文章目录list的介绍及使用list的介绍list的构造listiterator的使用listcapacitylistelementaccesslistmodifierslist模拟实现list节点类list迭代器类list类list深度剖析list迭代器失效list反向迭代器list与vector对比list的介绍及使用list的介绍1.list的底......
  • C++ 数学函数、头文件及布尔类型详解
    C++数学C++有许多函数可以让您在数字上执行数学任务。最大值和最小值max(x,y)函数可用于找到x和y的最大值:示例cout<<max(5,10);而min(x,y)函数可用于找到x和y的最小值:示例cout<<min(5,10);C++<cmath>头文件其他函数,例如sqrt(平方根)、round(四舍......
  • C++命名空间详解
    在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。#include<st......
  • C++从入门到精通——auto的使用
    auto前言一、auto类型别名思考二、auto简介三、auto的使用细则auto与指针和引用结合起来使用在同一行定义多个变量auto不能推导的场景auto不能作为函数的参数auto不能直接用来声明数组`lambda`表达式前言C++的auto关键字用于自动推导变量的类型,让编译器根据变量的......
  • C++基础夯实
     std::copystd::searchstd::back_inserterstd::equalmemcpy演示如何使用std::copy、std::search、std::back_inserter std::equal这四个方法。我们假设有两个向量,一个源向量source,一个目标向量destination。我们将首先使用std::copy方法将源向量中的元素复制......
  • 初探c++:string类的进阶运用
    1.begin()和end(),前一个指向字符串的第一个字符,第二个指向字符串的\0 strings=("helloworld"); string::iteratorit=s.begin(); while(it!=s.end()) { cout<<*it<<""; ++it; } cout<<endl;这是正向迭代器的经典应用如果要实现反向迭代器,就......
  • C++基础——选择结构与循环结构
    基础:选择语句☑️❌if语句if(a){//a判断表达式,如果a为真那就执行语句}if语句还可以与else结合使用if(a){//a判断表达式,如果a为真那就执行语句}elseif(b){//如果a为假,b为真那就执行语句}else{如果a和b都为假,那就执行该语句}swi......
  • 从基础入门到学穿C++(类和对象篇)【超详细】【一站式速通】
    类和对象C语言是一种面向过程的语言,C++和python、java一样都是一种面向对象的语言。面向对象编程(Object-OrientedProgramming,OOP)和面向过程编程(ProceduralProgramming)是两种不同的编程范式面向对象编程:强调的是将现实世界中的事物抽象成对象,并通过对象之间的交互来实现......