C++代码实现:提取字符串中连续数字并计数
"这个文档提供了一个C++程序,用于将输入字符串中的连续数字提取并作为一个整数输出,同时统计字符串中整数的个数。程序通过遍历字符串,判断每个字符是否为0-9之间的数字,并将连续的数字存储到二维字符数组中。之后,程序会打印出这些整数并输出整数的总数。" 在编程中,处理字符串中包含连续数字的情况是一项常见的任务。在这个示例中,程序主要涉及到以下几个知识点: 1. **字符判断**:使用`if(s[i]>=48&&s[i]<=57)`来判断字符是否为0-9之间的数字。这是因为ASCII码中,'0'的值为48,'9'的值为57。 2. **字符串遍历**:通过`for(i=0; i<length; i++)`循环遍历字符串的每个字符,其中`length=strlen(s)`获取字符串的长度。 3. **嵌套循环**:内层的`for(j=i, n=0; ; j++)`循环用于查找连续的数字。当遇到非数字字符时,通过`break`跳出循环。 4. **二维数组存储**:使用二维字符数组`a[m][101]`来存储找到的整数,数组索引`m`表示整数的个数。 5. **整数打印**:使用`printf("%s",&a[i][j])`打印出存储在二维数组中的整数,从第一个非零字符开始打印。 6. **计数与统计**:变量`m`用于记录整数的个数,每次找到一个整数后,`m++`。 7. **内存清零**:使用`memset`函数清空`a`和`s`数组,以便处理下一个输入字符串。`memset(a,0,sizeof(a))`和`memset(s,0,sizeof(s))`分别清空这两个数组。 8. **程序入口与控制流**:`int _tmain(int argc, _TCHAR* argv[])`是C++程序的入口点,`while(scanf("%s", s)!=EOF)`用于持续读取输入直到文件结束。 这个程序对于理解和处理字符串中的数字序列非常有帮助,可以作为学习字符处理、字符串遍历以及数据结构(如二维数组)的基础实践案例。同时,它也展示了如何在C++中使用基本的输入输出操作、条件判断和循环结构。
//
// suibo.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "string.h"
#include "conio.h"
char a[101][101];
char s[1001];
int _tmain(int argc, _TCHAR* argv[])
{
int i,j;
int m,n;
while(scanf("%s",s)!=EOF)
{
m=0;
int length=strlen(s);
for(i=0;i<length;i++)//对输入串进行处理
{
if(s[i]>=48&&s[i]<=57)//发现第一个为0-9的数
{
for(j=i,n=0;;j++)//把它之后的连续0-9的数记录下来,保存到a中
{
if(s[j]<48||s[j]>57)//遇到非0-9的数,跳出。(因为要是连续的)
break;
a[m][n++]=s[j];
}
m++;//个数加1
下载后可阅读完整内容,剩余1页未读,立即下载
- 粉丝: 1734
- 资源: 112
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展