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

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

时间:2024-11-05 14:44:36浏览次数:6  
标签: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......
  • 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......