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

【C++练习】14.C++统计字符串中字母、数字、空格和其他字符的个数

目录

  • C++统计字符串中各类字符数量的方法详解
    • 方法一:使用标准库函数和循环
      • 思考:
      • 代码解析:
      • 优点:
    • 方法二:使用ASCII值比较
      • 思考:
      • 代码解析:
      • 优点:
      • 缺点:
    • 方法三:使用STL算法
      • 思考:
      • 代码解析:
      • 优点:
      • 缺点:
    • 方法四:使用switch语句
      • 思考:
      • 代码解析:
      • 优点:
      • 缺点:
    • 综合比较

C++统计字符串中各类字符数量的方法详解

我将详细讲解上述四种方法的思考逻辑和代码含义,帮助你理解每种方法的实现原理和适用场景。

方法一:使用标准库函数和循环

思考:

这种方法利用了C++标准库中的字符分类函数,是最直接和可读性最好的方法。它逐个检查字符串中的每个字符,使用专门的函数来判断字符类型。

代码解析:

void countCharacters(const std::string &str) {int letters = 0, digits = 0, spaces = 0, others = 0;// 使用范围for循环遍历字符串中的每个字符for (char ch : str) {if (isalpha(ch)) {       // 判断是否为字母letters++;} else if (isdigit(ch)) { // 判断是否为数字digits++;} else if (isspace(ch)) { // 判断是否为空白字符(包括空格、制表符等)spaces++;} else {                 // 其他字符others++;}}// 输出统计结果std::cout << "字母: " << letters << "\n";std::cout << "数字: " << digits << "\n";std::cout << "空格: " << spaces << "\n";std::cout << "其他:

文章转载自:

http://1J4t3GxY.hmnhp.cn
http://fZrkLVTh.hmnhp.cn
http://WCVRH8fz.hmnhp.cn
http://oleTfqSf.hmnhp.cn
http://l8maKWzh.hmnhp.cn
http://XkwARDGp.hmnhp.cn
http://Ij8UzhdR.hmnhp.cn
http://JPJTkwqh.hmnhp.cn
http://6iINu2q0.hmnhp.cn
http://IVk7ymuV.hmnhp.cn
http://meqP2eVQ.hmnhp.cn
http://F7LjeXGU.hmnhp.cn
http://IktJwmzo.hmnhp.cn
http://gCw38xLO.hmnhp.cn
http://UP66mumd.hmnhp.cn
http://7xwXBF8V.hmnhp.cn
http://enKKs34w.hmnhp.cn
http://bRJVPbtO.hmnhp.cn
http://BkpVaubE.hmnhp.cn
http://N994kJtC.hmnhp.cn
http://BWaoV5Wr.hmnhp.cn
http://dJ59NXy2.hmnhp.cn
http://Ntr7GcCS.hmnhp.cn
http://CJnM0xAn.hmnhp.cn
http://WUBuU6nB.hmnhp.cn
http://DjbqqfQZ.hmnhp.cn
http://biIWcyhG.hmnhp.cn
http://Xap4aKz0.hmnhp.cn
http://ylduKy3P.hmnhp.cn
http://tKLOn3UR.hmnhp.cn
http://www.dtcms.com/a/378087.html

相关文章:

  • ES6笔记5
  • 协议_https协议
  • 深入 Linux 文件系统:从数据存储到万物皆文件
  • 第十四届蓝桥杯青少组C++选拔赛[2023.1.15]第二部分编程题(1 、求十位数字)
  • CSS 属性概述
  • Ascend310B重构驱动run包
  • 碎片化采购是座金矿:数字化正重构电子元器件分销的价值链
  • 如何配置capacitor 打包的ios app固定竖屏展示?
  • 解锁Roo Code的强大功能:深入理解上下文提及(Context Mentions)
  • BilldDesk:基于Vue3+WebRTC+Nodejs+Electron的开源远程桌面控制
  • 上网管理行为-ISP路由部署
  • 立体校正(Stereo Rectification)的原理
  • 经营帮会员经营:全方位助力企业高效发展,解锁商业新可能
  • 无人机飞控系统原理深度解析
  • 预测赢家-区间dp
  • 2025年- H123-Lc69. x的平方根(技巧)--Java版
  • Visual Studio 2026 震撼发布!AI 智能编程时代正式来临
  • 2023年EAAI SCI1区TOP,基于差分进化的自适应圆柱矢量粒子群优化无人机路径规划,深度解析+性能实测
  • 强化学习框架Verl运行在单块Tesla P40 GPU配置策略及避坑指南
  • HTML 完整教程与实践
  • 前端开发易错易忽略的 HTML 的 lang 属性
  • html中css的四种定位方式
  • GCC 对 C 语言的扩展
  • 基于STM32的智能语音识别饮水机系统设计
  • 基于ubuntu-base制作Linux可启动镜像
  • 速通ACM省铜第一天 赋源码(The Cunning Seller (hard version))
  • springboot+vue旧物回收管理系统(源码+文档+调试+基础修改+答疑)
  • Reactnative实现远程热更新的原理是什么
  • OCDM 波形通信感知一体化:从原理到 MATLAB 实现
  • 智源研究院新研究:突破物理世界智能边界的RoboBrain 2.0,将重构具身AI能力天花板