编程练习2 数据单元的变量替换

news2024/12/24 8:12:26

示例1:

1,2<A>00

示例2:

1,2<A>00,3<A>00

示例3:

<B>12,1,2<B>1

示例4:

<B<12,1

输出依次如下:

#include<iostream>
#include<vector>
#include<string>


using namespace std;

/*
字符分割函数 将传入的字符串按照字符分割 放入vector中
*/
vector<string> split_str(string str_input, char c)
{
    vector<string> result;
    while(str_input.find(c) != string::npos)
    {
        int pos_index = str_input.find(c);
        cout<<"pos_index:"<<pos_index<<endl;
        string str_tmp = str_input.substr(0, pos_index);//
        cout<<"str_tmp:"<<str_tmp<<endl;
        //int digital = stoi(str_tmp);
        result.push_back(str_tmp);
         str_input = str_input.substr(pos_index+1);
        //cout<<"str_input:"<<str_input<<endl;
     }
     //int digital = stoi(str_input);
	 cout<<"str_input:"<<str_input<<endl;
     result.push_back(str_input);
    return result;
}


int main() {
    string input_str;
    getline(cin, input_str);
    vector<string> str_vec;
    str_vec = split_str(input_str, ',');
    int count = 0;
    count = str_vec.size();
    for (int index = 0; index < count; index++) 
    {
        string cur_str = str_vec[index];
        int result1 = cur_str.find("<");
        int result2 = cur_str.find(">");
		
		cout <<"result1:"<<result1<<" result2:"<<result2<<""<<endl;

        if (result1 == -1 && result2 == -1) 
        {
            //
			//cout << "case 1"<<endl;
        } 
        else if(result1>-1 && result2>-1)
        {
			//cout << "case 2"<<endl;
            char target_pos = cur_str.substr(result1 + 1, result2)[0];
            char cur_pos = index + 'A';
            if (!(target_pos >= 'A' && target_pos <= 'Z')) 
            {
                //
            }
            if (cur_pos == target_pos) 
            {
                //
            }
            int target_index = target_pos - 'A';
   
            string temp_result = "";
            temp_result += cur_str.substr(0, result1);
            temp_result += str_vec[target_index];
            temp_result += cur_str.substr(result2 + 1);
            str_vec[index] = temp_result;
        }
		else
		{
			//cout << "case 3"<<endl;
			cout << "-1"<<endl;
			exit(0);
		}
        
    }
    count = str_vec.size();
    for (int i = 0; i < count; i++) {
        cout << str_vec[i];
        if (i != count - 1) {
            cout << ",";
        }
    }
	cout<<""<<endl;

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2164476.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IIS中配置HTTPS证书的详细步骤

在IIS&#xff08;Internet Information Services&#xff09;中导入HTTPS证书的步骤主要包括下载证书、导入证书和为网站绑定证书几个环节。以下是详细的步骤说明&#xff1a; 一、下载SSL证书 首先&#xff0c;确保你已经从证书颁发机构&#xff08;CA&#xff09;下载了适…

三.python入门语法2

目录​​​​​​​ 1.控制结构 1.1.顺序结构 1.2.选择结构 习题 1.3.循环结构 1.3.1. while语句 1.3.2.for语句 1.3.3.循环嵌套 1.4.break语句 1.5.continue语句 1.6.pass语句 习题 1.控制结构 在学习控制结构之前我们通过一个故事来简单的描述一下控制结构&…

DAMODEL丹摩智算:LLama3.1部署与使用

文章目录 前言 一、LLaMA 3.1 的特点 二、LLaMA3.1的优势 三、LLaMA3.1部署流程 &#xff08;一&#xff09;创建实例 &#xff08;二&#xff09;通过JupyterLab登录实例 &#xff08;3&#xff09;部署LLaMA3.1 &#xff08;4&#xff09;使用教程 总结 前言 LLama3…

前端sm2国密加密时注意

如下方法&#xff1a; export function encrypt(str) {const sm2 require("sm-crypto").sm2;const cipherMode 1; // 1 - C1C3C2&#xff0c;0 - C1C2C3&#xff0c;默认为1//自定义密钥let publicKey "xxxxxxxx";//此处加密let a sm2.doEncrypt(str,…

【数字图像处理】简单粗暴介绍最近邻插值和双线性插值(附python实现)

目录 前言最近邻插值理论与公式部分代码部分优缺点 双线性插值理论与公式部分代码实现优缺点 双三次内插 前言 最近邻插值和双线性插值是两种常见的用于图像处理的方法&#xff0c;主要是用于实现图像的放大和缩小。本文中将以最为简单粗暴的方式介绍两种方法的原理&#xff0…

USB-CAN的使用说明

文章目录 前言一、USB-CAN模块二、产品特性三、引脚说明四、使用说明1.USB驱动安装2.CAN配置工具说明1. 菜单栏&#xff1a;2. 模式选择和收发数据显示&#xff1a;3. 数据发送4. 发送模式 五、AT指令设置参数六、硬件测试 前言 CAN总线协议&#xff1a;一种多主、串行通信协议…

淘客系统开发之卷轴模式系统源码功能分析

随着互联网技术的快速发展&#xff0c;电商行业不断创新&#xff0c;探索更加高效、有趣的用户参与机制。其中&#xff0c;卷轴模式作为一种新兴的商业模式&#xff0c;以其独特的积分兑换和任务系统&#xff0c;在淘客系统开发中得到了广泛应用。本文将从技术角度&#xff0c;…

汽车免拆诊断案例 | 2016 款宾利GT车仪表盘上的多个故障灯点亮

故障现象 一辆2016款宾利欧陆GT车&#xff0c;搭载CYCB发动机&#xff0c;累计行驶里程约为4.5万km。据车主反映&#xff0c;发动机偶尔无法起动&#xff0c;仪表盘上的多个故障灯点亮&#xff08;图1&#xff09;。此外&#xff0c;刮水器、电动车窗及空调等电器设备功能失效…

IDC 中国数据安全软件市场报告:顺应平台化趋势,打造综合性的数据安全平台

近期&#xff0c;IDC 发布了针对中国数据安全软件市场规模的预测报告——《中国数据安全软件市场预测&#xff0c;2024-2028》&#xff08;Doc# CHC51601524&#xff0c;2024年9月&#xff09;。该报告针对 2024-2028 年中国数据安全软件市场的规模、增长速度、驱动因素、阻碍因…

剧本杀全新体验:线上剧本杀发挥重要优势

剧本杀作为集游戏社交休闲为一体的消费方式&#xff0c;吸引了众多年轻人&#xff0c;让玩家在游戏中体验到各种角色&#xff0c;还能够满足社交需求。当下&#xff0c;剧本杀市场仍然在快速发展中&#xff01; 剧本杀市场创新 不过&#xff0c;在多年的发展中&#xff0c;剧…

智谱清影 - CogVideoX-2b-部署与使用

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;Linux从入门到进阶 欢迎大家点赞收藏评论&#x1f60a; 目录 体验地址&#xff1a;[丹摩DAMODEL官网](https://www.damodel.com/console/overview) CogVideoX 简介本篇将详细介绍使用丹摩服务器部…

C++20中头文件compare的使用

<compare>是C20中新增加的头文件&#xff0c;此头文件是language support库的一部分。它包括&#xff1a;concepts、classes、customization point objects、functions。 1.concepts&#xff1a;三向比较运算符<>&#xff0c;目的是简化比对对象的过程&#xff0c;…

ant design vue中带勾选表格报Tree missing follow keys: ‘undefined‘解决方法

1、这里一定要给columns和data-source设置key即可。 <div><a-table:row-selection"rowSelection":dataSource"tableList":columns"columns":scroll"{ x: 100% }":pagination"false":loading"loading"&g…

戴尔R750 H755N raid卡数据盘改直通模式

1、重启机器进入配置模式&#xff0c;重启后按F2进入bios模式

计算机网络(九) —— Tcp协议详解

目录 一&#xff0c;关于Tcp协议 二&#xff0c;Tcp报头字段解析 2.0 协议字段图示 2.1 两个老问题 2.2 16位窗口大小 2.3 32位序号和确认序号 2.4 6个标记位 三&#xff0c;Tcp保证可靠性策略 3.1 确认应答机制&#xff08;核心&#xff09; 3.2 超时重传机制 3.3 …

最新最详细的Mastercam安装包下载安装教程(保姆级)

正如大家所熟悉的&#xff0c;Mastercam是一款基于PC平台的CAD/CAM软件&#xff0c;集二维绘图、三维实体造型、曲面设计、体素拼合、数控编程、刀具路径摸拟及真实感摸拟等多种功能于一身。 Mastercam发展至今有许多个版本&#xff0c;目前来说常用的版本有Mastercam V91、20…

Windows同时配置两个jdk环境变量

项目场景&#xff1a; Windows同时配置两个jdk环境变量 解压版那么可以更改JAVA_HOME的值&#xff0c;来决定使用哪个版本。安装版可以两个版本同时使用。 操作步骤 1、配置环境变量 在系统环境变量中添加两个环境变量&#xff0c;根据使用需求更改JAVA_HOME的值 2、修改ja…

mariadb实现冷备份与恢复操作案例(物理冷备份,周期性备份)详解

文章目录 前置环境一、物理冷备份1.备份2.恢复检查结果 补充&#xff1a; 周期性恢复操作 前置环境 主机ipmariadb1192.168.10.11mariadb2192.168.10.12 mairadb1操作 安装mariadb yum -y install mariadb-server启动mariadb systemctl start mariadb这里只是演示备份与恢复…

数据结构不再难懂:带你轻松搞定排序算法

数据结构入门学习&#xff08;全是干货&#xff09;——排序算法&#xff08;下&#xff09; 1 快速排序 1.1 算法概述 快速排序采用分而治之的策略&#xff0c;与归并排序相似。其核心在于选择一个主元&#xff08;pivot&#xff09;作为分割点。 分而治之 主元(pivot)>…

【病毒分析】新兴TOP2勒索软件!存在中国受害者的BianLian勒索软件解密原理剖析

1. 概述 近期&#xff0c;笔者在浏览网络中威胁情报信息的时候&#xff0c;发现美国halcyon.ai公司于2024年3月25日发布了一篇《Ransomware on the Move: LockBit, BianLian, Medusa, Hunters International》报告&#xff0c;此报告对当前勒索软件团伙的实力进行了排名&#…