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

C++ - 从字符串中提取一个数的若干种写法

提取整数

要求:输入一个字符串里面包含一个整数,注意字符串中可能有空格。

用字符串string

image

用char

image

提取整数

要求:输入一串字符串,里面包含若干个小数,字符串中可能有空格。

比如输入:The marathon runner completed the 10.5-kilometer race in under an hour, averaging a pace of 4.75 minutes per kilometer.;

遍历后转数值的写法

string s="The marathon runner completed the \
10.5-kilometer race in under an hour, \
averaging a pace of 4.75 minutes per kilometer."; //获取每一个数值 
double num=0,xsw=0.1;
bool xs=false;
for(int i=0;i<s.size();++i){if(s[i]>='0' && s[i]<='9'){int c=s[i]-'0';if(xs==false){num=num*10+c;}else{num+=c*xsw;xsw/=10;}}else if(s[i]=='.'){xs=true;}else{if(num!=0){cout<<num<<endl;num=0;}xs=false;xsw=0.1;}
}

用stod

string s="The marathon runner completed the \
10.5-kilometer race in under an hour, \
averaging a pace of 4.75 minutes per kilometer."; string cn="";
for(int i=0;i<s.size();++i){if(s[i]>='0' && s[i]<='9' || s[i]=='.'){cn+=s[i];}else{if(cn.size()>0){cout<<stod(cn)<<endl;cn="";}}
}
http://www.jsqmd.com/news/12010/

相关文章:

  • docker常用命令 - 实践
  • 如何在UE中创建动态枚举
  • 搭建SSH服务于RK3399平台上的Ubuntu 18.04,实现远程连接
  • 深入探讨MySQL的二进制日志(binlog)选项
  • sparkml 多列共享labelEncoder - 详解
  • 能连上 GitHub(SSH 验证成功),却 push 失败?常见原因与逐步解决方案 - 详解
  • 深入解析:深入理解Kafka的复制协议与可靠性保证
  • 一键解决MetaHuman播放动画时头部穿模问题
  • 忽然很好奇为什么素未谋面的大家都知道我是学姐?
  • Docker 安装 canal 详细步骤 - 实践
  • 从十五岁的今天写给十六岁的明天
  • kali U盘启动持久化
  • 深入解析:Telerik UI for ASP.NET MVC 2025 Q3
  • 配置Nginx服务器在Ubuntu平台上
  • 缓存一致性验证秘笈
  • Java依记 DAY02 - I
  • 元推理:汉字的发音,同音也是某种同构?
  • 题解:qoj7759 Permutation Counting 2
  • WAV 转 flac 格式
  • EtherCAT芯片没有倍福授权的风险
  • 为何是「对话式」智能体?因为人类本能丨对话式智能体专场,Convo AIRTE2025
  • 2014-2024高考真题考点分布详细分析(另附完整高考真题下载) - 详解
  • 详细介绍:MySQL专用服务器自动调优指南
  • P4147 玉蟾宫(最大子矩形)
  • 【实录】应用 Verdaccio 从零搭建私有 npm 仓库(含完整步骤及避坑指南)
  • CentOS 7 安装 bzip2-libs-1.0.6-13.el7.x86_64.rpm 的详细步骤
  • 完整教程:HAProxy 完整指南:简介、负载均衡原理与安装配置
  • 单片机学习日记 - 详解
  • 金铲铲明星学生2触发条件
  • GESP C++5级 2025年6月编程2题解:最大公因数 - 教程