建立一个String_Interator类把一个字符串中的数字字符转化为正整数

2023-05-16

建立一个String_Interator类把一个字符串中的数字字符转化为正整数,具体要求如下

  • (1)私有数据成员
  • (2)公有成员函数
  • (3)任务描述

(1)私有数据成员

		char* s;	用动态空间存放字符串

(2)公有成员函数

		String_Interator(char* str);		用参数str初始化数据成员
		operator int();							转换函数,将数据成员s转化整数,并返回该数
		void show();								输出数据成员s
		~String_Interator();					释放动态空间

(3)任务描述

       在主函数中定义的类进行测试,定义字符数组,把由键盘输入的字符串“AB123  c00d45ef“”存入数组,
       并用该数组初始化String_Interator类的对象调用show()函数输出数据成员s,然后把对象赋值给整形变
       量n,并输出转结果如下所示;

	请输入字符:AB123  c00d45ef
	字符串为:AB123  c00d45ef
	转换得到的整数为:1230045
#include<iostream>
#include<string>
using namespace std;



class String_Interator
{
private:
	char* s;
public:
	String_Interator(char* str);
	operator int();
	void show();
	~String_Interator();
};


String_Interator::String_Interator(char* str)
{
	s = new char(sizeof(str)); 			 //开辟动态空间 
	s = str;											//将str传入类对象中
}
String_Interator::operator int()
{
	int k = 0,l;
	char* f = s;
    char*x=s;
	while (*f != '\0')								//判断元素是否遍历
	{
		if (*f >= '0' &&*f <= '9')
			k++;										//记录有效元素个数(0~9)
		f++;
    }
	int a = 0, c = 0;
	while (*x != '\0')
	{
		if (*x >= '0' && *x <= '9')
		{
			l = *x - '0';				//还原字符为整数
            c=l;
			for (int j = 0; j < k-1; j++)
			{
				c = c * 10;			//叠加得到最后的整数
			}
			a = a + c;
            k--;
           
		}
        x++;
	}
	cout << "转换得到的整数为:" << a << endl;
	return 0;
}

void String_Interator::show()
{
	cout << "字符串为:" << s << endl;
}
String_Interator::~String_Interator()
{
	delete[]s;									//释放s空间
}

int main()
{
	string a;

	int c;
	cout << "请输入字符串:" << endl;


	getline(cin, a);					//得到带有空格的字符串,注意getlinea()函数只能传入string中;

	c = sizeof(a);					//得到字符串长度
	char* b = new char[c];		//创建指针用来初始化类
	for (int i = 0; i < c; i++)		
		b[i] = a[i];						//将a中的值赋给b;!!!这一步非常关键
	String_Interator A(b);
	A.show();
	A.operator int();


	return 0;

}
``
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

建立一个String_Interator类把一个字符串中的数字字符转化为正整数 的相关文章

  • 使用D435i深度相机运行ORB-SLAM3

    下载安装链接 下载ORB SLAM3地址 xff1a git clone https github com UZ SLAMLab ORB SLAM3 git eigen3多版本安装 xff1a https blog csdn net wei
  • keil5使用一个父工程打开多个子工程文件

    1 首先工程文件需要在同样的文件夹里 2 打开keil5 xff0c 选择Project New Multi Project Workspace 3 将工程文件建立在刚刚的总文件夹里面 xff0c 命名保存 4 弹出此页面 xff08 Cr
  • ​Android动态加载so!这一篇就够了!

    作者 xff1a Pika 链接 xff1a https juejin cn post 7107958280097366030 对于一个普通的android应用来说 xff0c so库的占比通常都是巨高不下的 xff0c 因为我们无可避免的
  • HTTP是什么

    HTTP是什么 HTTP是什么 HTTP协议是Hyper Text Transfer Protocol xff08 超文本传输协议 xff09 的缩写 是用于从万维网 xff08 WWW World Wide Web xff09 服务器传输
  • error: array has incomplete element type ‘char []‘

    原代码 xff1a void explain input char int char a 报错 xff1a error array has incomplete element type 39 char 39 原因 xff1a 可以用二维数
  • STM32串口接收十六进制数转为十进制数(包含负数)

    外部设备传输给STM32单片机十六进制数 例如0x09c4 代表2500 0xff38 代表 200 xff08 并不是65336 xff0c 因为这是有符号的 xff09 串口接收处理函数 接收到 5A A5 06 83 55 00 01
  • 无人机-3无人机ROS应用与开发

    一 ROS是什么 二 为什么要学习ROS 三 怎么学习ROS https www cnblogs com masbay p 10745170 html TF坐标系指机器人在现实世界会有坐标的变换 xff0c ROS已经将其算成固定的程序 x
  • ROS入门-4.安装ROS系统(ubuntu20.04版本安装ros的noetic版本)

    ubuntu20 04版本安装ros的noetic版本 1 添加软件源2 添加密钥3 更新4 安装ROS5 初始化rosdep6 设置环境变量7 测试ROS安装是否成功 1 添加软件源 2 添加密钥 3 更新 4 安装ROS 5 初始化ro
  • 数学建模-12.预测模型

    灰色预测 灰色系统 GM 1 1 模型 xff1a Grey Model GM 1 1 原理介绍 呢么 xff0c 准指数规律的检验 xff1f 发展系数 a 与预测情形的探究 发展系数越小预测的越精确 GM 1 1 模型的评价 在使用GM
  • 数学建模-数学规划模型

    数学规划模型 一 概述 1 什么是数学规划 xff1f 运筹学的一个分支 xff0c 用来研究在给定条件下 即约束条件 xff0c 如何按照某一衡量指标 xff08 目标函数 xff09 来寻求计划 管理工作中的最优方案 即求目标函数在一定
  • 机器学习西瓜书学习记录-第四章 决策树

    第4章 决策树 4 1基本流程 决策树 xff0c 一类常见机器学习方法 xff0c 希望从给定训练集学得一个模型用以对新示例进行分类 一般 xff0c 一棵决策树包含一个根结点 若干个内部结点和若干个叶结点 xff1b 叶结点对应于决策结
  • 机器学习西瓜书学习记录-第五章 神经网络

    第5章 神经网络 5 1神经元模型 神经网络中最基本的成分是神经元模型 M P神经元模型 xff0c 又称 阈值逻辑单元 在模型中 xff0c 神经元接收到来自n个其他神经元传递过来的输入信号 xff0c 这些输入信号通过带权重的连接进行传
  • 机器学习西瓜书学习记录-第六章 支持向量机

    第6章 支持向量机 移步b站学习 学习贴
  • SurfaceFlinger模块

    SurfaceFlinger是一个系统服务 xff0c 作用就是接受不同layer的buffer数据进行合成 xff0c 然后发送到显示设备进行显示 SurfaceFlinger进程是什么时候起来的 xff1f 在之前的Android低版本
  • STM32-串口通信实验

    一 通信接口背景知识 1 通信的两种方式 xff1a 并行通信 传输原理 数据各个位同时传输 优点 速度快缺点 占用引脚资源多 串行通信 传输原理 数据按位顺序传输 优点 占用引脚资源少缺点 速度相对较慢 2 串行通信 按照数据传送的方向
  • UDP介绍,编程流程

    介绍 xff1a 面向无连接的用户数据报协议 xff0c 不需要建立任何连接 xff0c 目的主机接收后不需要确认 UDP特点 xff1a 相比TCP速度快一些简单的应用程序直接使用 不需要加密对于海量数据不采用UDP广播和多播必须采用UD
  • 数据结构-线性表的链式存储(包含代码实现)

    线性表的链式表示和实现 链式存储结构 结点在存储器中的位置是任意的 xff0c 即逻辑上相邻的数据元素在物理上不一定相邻线性表的链式存储结构又称为非顺序映像或链式映像 用一组物理位置任意的存储单元来存放线性表的数据元素这组存储单元既可以是连
  • Android6.0以上高危权限动态申请

    1 在项目的Manifest xml中添加静态权限 拨打电话 lt uses permission android name 61 34 android permission CALL PHONE 34 gt 发送短信 lt uses pe
  • Linux入学—共享文件夹(保姆教程)

    序言 自从上学期上完课以来就没有用过Linux xff0c 最近因为学习传感器数据上传云端的需要 xff0c 安装了Linux xff0c 在开始装jdk的时候需要下载jdk的压缩包 xff0c 需要通过windows上传到Ubuntu 之
  • Ubuntu下安装java环境及idea

    前言 一 JDK的安装 二 配置环境 1 在 系统中配置java环境 三 idea社区版的安装 前言 提示 xff1a 这里可以添加本文要记录的大概内容 xff1a 由于自己的学习需要 xff0c 这里需要用到在Linux系统下的Java

随机推荐