首页 > 编程语言 >C++——输入一个字符串,内有数字和非数字字符,如a123x456_ 17960?302tab5876将其中连续的数字作为一个整数, 依次存放到一数组a中。用指针或引用方法处理。

C++——输入一个字符串,内有数字和非数字字符,如a123x456_ 17960?302tab5876将其中连续的数字作为一个整数, 依次存放到一数组a中。用指针或引用方法处理。

时间:2024-11-05 14:44:36浏览次数:3  
标签:pstr digit 数字 48 ++ e10 302tab5876 C++ pa

没注释的源代码

#include <iostream>
#include<stdio.h>
using namespace std;

int main()
{
    char str[50],*pstr;
    int i,j,k,m,e10,digit,ndigit,a[10],*pa;
    cout<<"please input string:"<<endl;
    gets(str);
    pstr=&str[0];
    pa=&a[0];
    ndigit=0;
    i=0;
    j=0;
    while(*(pstr+i)!='\0')
    {
        if((*(pstr+i)>='0')&&(*(pstr+i)<='9'))
            j++;
        else
        {
            if(j>0)
            {
                digit=*(pstr+i-1)-48;
                k=1;
                while(k<j)
                {
                    e10=1;
                    for(m=1;m<=k;m++)
                        e10*=10;
                    digit+=(*(pstr+i-1+k)-48)*e10;
                    k++;
                }
                *pa=digit;
                ndigit++;
                pa++;
                j=0;
            }
        }
        i++;
    }
    if(j>0)
    {
        digit=*(pstr+i-1)-48;
        k=1;
        while(k<j)
        {
            e10=1;
            for(m=1;m<=k;m++)
                e10*=10;
            digit+=(*(pstr+i-1-k)-48)*e10;
            k++;
        }
        *pa=digit;
        ndigit++;
        j=0;
    }
    cout<<"there are numbers in this line:"<<endl;
    j=0;
    pa=&a[0];
    for(j=0;j<ndigit;j++)
        cout<<*(pa+j)<<endl;
    return 0;
}
 

标签:pstr,digit,数字,48,++,e10,302tab5876,C++,pa
From: https://blog.csdn.net/2303_80770781/article/details/143472311

相关文章

  • C++中类的三的特性是什么?什么是构造函数和析构函数?它们的作用是什么?
    1)C++中类的三大特性是什么?请简要解释。C++中类的三大特性是封装、继承和多态。一、封装封装是将数据和操作数据的方法封装在类中,对外部隐藏类的内部实现细节。通过将数据成员设为私有(private),并提供公有的(public)成员函数来访问和修改这些数据,从而实现对数据的保护和控......
  • 每天两个知识点 拷贝构造函数和赋值运算符重载的作用&C++模板及其类型
    1)拷贝构造函数和赋值运算符重载的作用拷贝构造函数(CopyConstructor)和赋值运算符重载(AssignmentOperatorOverload)是C++中处理对象复制和赋值的两个重要机制。拷贝构造函数:拷贝构造函数是一个特殊的构造函数,它用于创建一个新对象,并将其初始化为另一个同类型对象的副本。......
  • 大话C++:第27篇 Lambda表达式
    1Lambda表达式介绍在C++中,lambda表达式(也称为闭包)是一种可以定义匿名函数对象的便捷方式。它们能够捕获所在作用域中的局部变量,并且可以在需要函数对象的地方使用。Lambda表达式为C++提供了更简洁、更灵活的函数式编程方式。Lambda表达式的基本语法如下:[capture](parameter......
  • 通用文档识别接口、表格识别接口介绍、场景解析-让数字化转型更智能
    通用文档识别接口与通用表格识别接口,依托于人工智能和深度学习算法,帮助用户高效提取和识别文档中的关键信息,从而大大提升文档处理的准确性与效率。有利于推动智能化工作流程,翔云通用文档识别、通用表格识别接口能够自动识别各种文档、表格格式中的文字内容,包括扫描文件、手写......
  • C++ OpenCv二值化找圆心坐标
    思路:图像转为灰度图,然后二值化得到只有0或255的点坐标,此处圆是黑点,所以添加所有像素值为0的坐标。在这些坐标中找到圆上最左边、最顶端、最右边、最底端的四个点,这时可求出圆心坐标。 .cpp文件#include<opencv2/opencv.hpp>#include<iostream>#include<cstdlib>#include......
  • 江行智能×图扑软件:输煤皮带数字孪生管控系统
    在现代矿业和电力行业中,输煤皮带系统是运输环节的核心。然后,随着智能化生产的高要求,智慧矿山输煤皮带系统的传统管理模式已显得力不从心。产业引入的三维可视化和数字孪生技术,一改传统输煤皮带系统由于设备老化、管理不善等原因,导致的可能出现停机和故障等问题,大幅提高输煤皮带系......
  • (C++实现)2-NAF
    (C++实现)2-NAF前言‍任何一个非负整数,都有一个唯一的NAF(Non-adjacentform)表示。因着课程的缘由,我不得不研究一下NAF是怎么实现的,也是现学现用。‍Note:‍采用C++实现一篇很短的博客,专注于2-NAF‍‍目录‍目录(C++实现)2-NAF前言目录定义实现V1,最low......
  • AI赛道盈利模式揭秘——以AIStarter为例【AI数字人、大模型、工作流...】
    随着人工智能技术的飞速发展,越来越多的企业涌入这一赛道,试图在激烈的市场竞争中占据一席之地。作为其中的一员,AIStarter凭借其独特的商业模式和技术创新,成功地在市场上站稳了脚跟。本文将深入探讨AIStarter的盈利模式,揭示其成功的秘密。AIStarter概述AIStarter是一家专注于提......
  • 从零开始学AIStarter:创作者模式全攻略【AI工作流、数字人、大模型、对话、设计...】
    在数字化时代,项目管理工具成为了提高工作效率、促进团队协作不可或缺的一部分。对于创作者来说,选择一个既能满足个性化需求又能提供高效管理支持的平台尤为重要。AIStarter项目管理平台正是这样一款专为创意人士设计的强大工具,它不仅提供了丰富的功能来帮助用户更好地组织工作......
  • (3)---【C语言】【GL库】【计算机图形学】DEV C++ 平台openGL库 下的画线图案设计 房
    声明:        由于本人是一名学生,现阶段还要完成学业,所以我们每周假期再回!谢谢大家理解和支持!上篇上手实践  运行结果 实现代码#include<windows.h>#defineGLUT_DISABLE_ATEXIT_HACK//处理不同系统的配置问题的宏#include<GL/glut.h>#include<std......