[C++] 提取字符串中的所有数字并组成一个数

简介: [C++] 提取字符串中的所有数字并组成一个数

思路:利用ASCII中“0-9”,小写字母、大写字母的顺序,实现。

代码:`

#include "iostream"
#include < string>
using namespace std;
int main()
{
     string s ;
     cin>>s;
     int len =s.length();  //.length   表示字符串的长度
     int a,b,//用来循环扫描字符串
       bit,//在一个字符串中,对一个外形是数字的字符,把这样的字符转化成数字,存与bit中
       num;//最终存放提取出的数字
     int flag=0;//判断字符串中是否有数字
     cout<<"字符串中的数字有:"<<endl;
     for(a=0;a<len;a++)
     {
      if(s[a]>='0'&&s[a]<='9')//过滤掉外形是非数字的字符
    {
      flag++;
      b=a;
      num=0;//num每次循环的初值置为0
      while(b<len&&s[b]>='0'&&s[b]<='9')
      {
             bit=s[b]-'0';
       num=num*10+bit;
       b++;
      }
      cout<<num<<endl;
      a=b;
    }
     }
    if(flag==0)
  cout<<"字符串中无数字"<<endl;
  system("pause");
}`

结果:

目录
相关文章
|
9月前
|
C语言 C++
【实战指南】 C/C++ 枚举转字符串实现
本文介绍了在C/C++中实现枚举转字符串的实用技巧,通过宏定义与统一管理枚举名,提升代码调试效率并减少维护错误。
532 86
|
搜索推荐 编译器 C语言
【C++核心】特殊的元素集合-数组与字符串详解
这篇文章详细讲解了C++中数组和字符串的基本概念、操作和应用,包括一维数组、二维数组的定义和使用,以及C风格字符串和C++字符串类的对比。
467 5
|
消息中间件 Linux C++
c++ linux通过实现独立进程之间的通信和传递字符串 demo
的进程间通信机制,适用于父子进程之间的数据传输。希望本文能帮助您更好地理解和应用Linux管道,提升开发效率。 在实际开发中,除了管道,还可以根据具体需求选择消息队列、共享内存、套接字等其他进程间通信方
381 16
|
编译器 C语言 C++
C/C++数字与字符串互相转换
C/C++数字与字符串互相转换
|
缓存 网络协议 API
C/C++ StringToAddress(字符串转 boost::asio::ip::address)
通过上述步骤和示例代码,你可以轻松地在C++项目中实现从字符串到 `boost::asio::ip::address`的转换,从而充分利用Boost.Asio库进行网络编程。
468 0
HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具
HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具
|
算法 C++
2730. 找到最长的半重复子字符串(c++,滑动窗口)
2730. 找到最长的半重复子字符串(c++,滑动窗口)
131 1
567. 字符串的排列(c++)滑动窗口
567. 字符串的排列(c++)滑动窗口
178 1
|
编译器 C++
【C++】string类的使用④(字符串操作String operations )
这篇博客探讨了C++ STL中`std::string`的几个关键操作,如`c_str()`和`data()`,它们分别返回指向字符串的const char*指针,前者保证以&#39;\0&#39;结尾,后者不保证。`get_allocator()`返回内存分配器,通常不直接使用。`copy()`函数用于将字符串部分复制到字符数组,不添加&#39;\0&#39;。`find()`和`rfind()`用于向前和向后搜索子串或字符。`npos`是string类中的一个常量,表示找不到匹配项时的返回值。博客通过实例展示了这些函数的用法。
|
C++ 容器
C++字符串string容器(构造、赋值、拼接、查找、替换、比较、存取、插入、删除、子串)
C++字符串string容器(构造、赋值、拼接、查找、替换、比较、存取、插入、删除、子串)
405 1