C++字符串分割替换 ubuntu版本

C++轻量级Web服务实战:基于jwt-cpp与httplib的登录认证与API保护 在现代Web服务开发中,用户认证与API安全是保障系统可靠性的基石。其核心原理在于通过令牌机制实现无状态的身份验证,其中JSON Web Token(JWT)因其自包含、可验证的特性成为主流方案。该技术通过数字签名确保令牌的完整性与来源可信,其价值在于简化了服务端的会话管理,便于分布式系统扩展。典型的应用场景包括前后端分离架构中的用户登录、微服务间的安全调用以及受保护资源的访问控制。本文聚焦于C++工程实践,详细阐述了如何利用轻量级的jwt-cpp库实现JWT的签发与验证,并结合同样简洁的httplib库构 阅读详情
#include <iostream> 
#include <string> 
#include <vector> 
 
 
using namespace std; 
 
 
vector<string> mySplit(const string& str,string sp_string)  // split(),str 是要分割的string
{ 
    vector<string> vecString; 
    int sp_stringLen = sp_string.size(); 
    int lastPosition = 0; 
    int index = -1; 
    while(-1 != (index=str.find(sp_string,lastPosition))) 
    { 
        vecString.push_back(str.substr(lastPosition,index - lastPosition)); 
        lastPosition = index +sp_stringLen; 
    } 
    string lastStr = str.substr(lastPosition); 
    if ( !lastStr.empty() ) 
    { 
        vecString.push_back(lastStr); 
    } 
    return vecString; 
} 
 
 
string myReplaceAll(const string& str,string org_str,string rep_str) // 把org_str 替换为rep_str; 
{ 
    vector<string>  delimVec = mySplit(str,org_str); 
    if (delimVec.size() <= 0) 
    { 
        cout<<"can not find"<<endl; 
        return str; 
    } 
    string target(""); 
    vector<string>::iterator it = delimVec.begin(); 
    for (; it != delimVec.end(); ++it) 
    { 
        target = target + (*it)+ rep_str; 
    } 
//target = target +(*it); 
    return target; 
    } 
 
// 把org_strVec中的string全部替换为rep_str; 
string myReplaceAll(const string& str,vector<string>& org_strVec,string rep_str)
{ 
    vector<string>::iterator org_it = org_strVec.begin(); 
    string org_str(""); 
    string target = str; 
    string strTarget = str; 
    for (; org_it != org_strVec.end(); ++org_it) 
    { 
        org_str = *org_it; 
        vector<string> delimVec = mySplit(strTarget,org_str); 
        target = ""; 
        if (delimVec.size() > 0) 
        { 
            vector<string>::iterator it = delimVec.begin(); 
            for (;it != delimVec.end(); ++it) 
            { 
                target = target + (*it) +rep_str; 
            } 
            strTarget = target; 
        } 
    } 
    return strTarget; 
} 
 
 
 
 
int main(int argc,char* argv[]) 
{ 
    string str = "ewrsdrtwrtsdfsdsdfrtfgsdfertgdffgertsdfsd"; 
    string splitStr = "sd"; 
    string replaceStr1 = "mmmm"; 
    string replaceStr2 = "xxxx"; 
    vector<string> strVec1 = mySplit(str,splitStr); 
    for (vector<string>::iterator it = strVec1.begin(); it != strVec1.end(); ++it) 
    { 
        cout<< "!!!  "<<*it<<endl; 
    } 
    string strX[] = {"wr","rt"}; 
    vector<string> strVec2 (strX,strX + sizeof(strX)/sizeof(strX[0])); 
 
    cout << strVec2[0]<<"13q3224"<<strVec2[1]<<endl; 
    str = myReplaceAll(str,splitStr,replaceStr1); 
    str = myReplaceAll(str,strVec2,replaceStr2); 
    cout << str <<"~~~~~"<<endl; 
    return 0; 
}

编译:
g++ -std=c++11 -o test test.cpp
运行:

!!!  ewr
!!!  rtwrt
!!!  f
!!!  
!!!  frtfg
!!!  fertgdffgert
!!!  f
wr13q3224rt
exxxxmmmmxxxxxxxxtmmmmfmmmmmmmmfxxxxfgmmmmfexxxxgdffgexxxxmmmmfmmmmxxxxxxxx~~~~~

llama.cpp与Ollama实战指南:GGUF模型本地部署全解析 大模型推理框架是AI落地的关键基础设施,其核心在于将训练完成的模型高效、稳定、可控地运行在边缘或本地设备上。llama.cpp作为轻量级C/C++实现的模型解释器,通过GGUF格式实现跨平台、低开销、高确定性的前向计算;Ollama则在其之上构建了模型分发、运行时管理与配置即代码(Modelfile)等部署能力,显著降低工程门槛。二者协同解决了Windows与Linux环境下CUDA编译失败、国内镜像下载缓慢、量化格式不兼容、GPU加速失效等高频痛点,广泛应用于笔记本、台式机及嵌入式设备的私有化AI服务搭建 阅读详情

相关推荐

SAM3多模态分割Docker一键部署:支持文本提示的图片与视频分割

SAM(Segment Anything Model)是一类基于提示词的通用图像分割基础模型,其核心原理是通过统一提示编码器将点、框、文本、草图等多模态输入映射到共享特征空间,实现零样本泛化。技术价值在于摆脱传统分割对标注数据的依赖,显著降低下游任务适配门槛;典型应用场景涵盖医疗影像分析、工业缺陷检测、智能视频编辑及AIGC内容生成。随着SAM3发布,原生支持文本提示、草图提示与多轮交互提示,但官方缺乏开箱即用的推理封装。本方案聚焦SAM3提示词驱动的图片分割与视频分割能力,通过Docker容器固化运行时环

weixin_30570101的博客 413

C++ split() 函数

C++中没有 split() 函数,有时在处理字符串的时候很不方便。 下面我们就来实现一个自己的 split() 函数。 split() static void _split(const std::string &s, char delim, std::vector &elems) { std::stringstream s

fengfengdiandia的专栏 2万+

Qwen本地部署实战:llama.cpp+vLLM双引擎离线推理方案

大语言模型本地化部署是保障数据安全、降低API成本与提升响应确定性的关键技术路径。其核心在于推理引擎选型、模型量化适配与服务层治理能力的协同优化。基于llama.cpp的确定性控制与vLLM的高并发调度能力,Qwen系列模型(如Qwen2/Qwen3)可在消费级GPU、ARM设备及昇腾AI芯片上实现低延迟、可量化的离线推理。尤其在工业质检、边缘ASR、私有知识库等需多模态集成与强SLA保障的场景中,chat_template精准注入、Q4_K_M量化策略及OpenAI兼容API成为落地关键。本文聚焦Qwen

weixin_34060299的博客 423

【shell】shell字符串分割|文件分割|剪切|截取

目录 一、字符串分割 1、awk分割 2、利用shell 中 变量 的字符串替换成空格分割 3、设置分隔符,通过 IFS 变量 4、利用tr 指令实现字符替换 二、文件分割 附录 【转】linux下awk内置函数的使用(split/substr/length) 四、gsub函数 五、正则表达式 一、字符串分割 1、awk分割 把 ceph_12.2.1.centos.x86_64.tar.gz-2021-10-08-08后面的2021-10-08-08按“-”分割,取最后一个数..

我的笔记本 10万+

Ubuntu镜像源配置全指南:apt update卡顿与ubuntu.sources新格式解析

APT 是 Ubuntu 系统包管理的核心机制,其性能直接受网络基础设施与源配置格式影响。当 apt update 长时间卡在 Hit/Ign 状态,本质是 TLS 握手、GPG 校验与高延迟 DNS 解析共同导致的协议层阻塞;而 Ubuntu 22.04 起全面启用的 ubuntu.sources 新格式,以 YAML 声明式语法替代传统 sources.list 文本行,原生支持 Signed-By 密钥路径绑定、多架构精准匹配及条件加载,显著提升安全性与解析效率。该机制升级不仅解决下载慢问题,更规避

weixin_33698043的博客 389

从零构建C++汉字识别引擎:传统CV+ML技术实践与优化

计算机视觉(CV)与机器学习(ML)是模式识别领域的核心技术,其核心原理在于通过算法让计算机从图像中提取特征并做出决策。在OCR(光学字符识别)应用中,传统CV+ML方案通过模块化流水线设计,将图像预处理、特征提取与分类识别解耦,提供了高可解释性和可控性。其技术价值在于平衡了性能、资源消耗与开发透明度,尤其适合嵌入式、边缘计算及对依赖项敏感的场景。本文以构建C++汉字识别系统为例,深入探讨了基于OpenCV的图像处理、HOG特征提取与SVM分类器的工程实现,并分享了在模块集成、性能优化及多平台部署中的实践经

weixin_30756499的博客 306

【shell】字符串截取&替换&分割

shell字符串输出、截取、分割、替换。

Luna_A的博客 2万+

Codex不是AI编程神器,而是懂C++的资深同事

C++智能编程助手并非通用大模型,而是深度耦合符号解析、AST语义桥接与上下文感知的专用开发协作者。其核心能力源于对C++标准(如C++11内存模型、模板实例化、RAII资源管理)的精准建模,而非简单文本预测。技术价值体现在提升工程规范性(如Plan mode强制契约式设计)、保障跨平台兼容性(离线索引支持ARM/x86/RTOS等ABI),并显著降低调试成本(自动识别竞态条件、close()错误、EINTR未处理等典型缺陷)。典型应用场景包括嵌入式系统开发、遗留C++项目重构、多标准混合工程(C++11/

weixin_33985679的博客 345

shell脚本切割字符串、分割字符串(split)

用下面这个脚本就能将外网ip提取出来。分割,获取后面的ip地址。

Dontla的博客 1万+

C++程序加固实战:混淆与加密构建多层次防御体系

在软件安全领域,代码保护是保障核心算法与知识产权的重要环节。其基本原理在于通过技术手段增加程序的分析与理解难度,从而提升软件的抗逆向工程能力。从技术价值看,有效的程序加固能显著提高攻击者的时间与经济成本,保护开发者的劳动成果。常见的应用场景包括商业SDK、游戏客户端、金融交易系统等对代码安全性要求较高的领域。本文聚焦于C++程序的加固实战,深入探讨如何将代码混淆与运行时加密这两种核心技术有机结合。其中,控制流扁平化和字符串加密等混淆技术能有效对抗静态分析,而自主实现的轻量级加密壳则构建了动态运行的防线,两者

weixin_33924220的博客 361

Ubuntu 18.04 下用 Radamsa 实战模糊测试:从安装到崩溃分析

模糊测试(Fuzz Testing)是一种通过向程序注入非预期输入以发现内存破坏、崩溃和逻辑缺陷的关键安全验证技术。其核心原理是基于变异策略(Mutation-based Fuzzing)对种子数据进行结构化扰动,而非简单随机生成,从而高效触发边界条件异常。Radamsa 作为轻量级、协议无关的通用变异模糊器,在真实工程中具备高复现性与强环境敏感性——尤其在 Ubuntu 18.04 这类广泛部署的遗留系统上,其 glibc 2.27 和内核 4.15 组合对堆管理、信号处理等底层行为的细微差异,直接影响漏

weixin_33901926的博客 434

shell中的字符串操作——字符串的切割总结

前言 在python和java等语言中,对字符串操作大多都是调用函数来完成,但是像shell这种使用c语言编写的程序,对字符串的切割显得更加简单。shell脚本中对字符串的切割有很多种,在这里我将我熟悉,好用的方法给总结出来,分享给大家,希望能够对你们的学习和工作起到帮助。 1、${var#} #! /bin/bash var=“www.google.com” ${var#.. } ...

Hege007的博客 8110

shell 使用指定的分割符来分割字符串的方法

主要介绍了shell 使用指定的分割符来分割字符串的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

【负载均衡oj项目】01. 项目概述及准备工作

本文介绍了一个基于C++开发的负载均衡式在线评测系统(OJ),采用MVC架构实现类似LeetCode的编程平台功能。系统通过多机负载均衡提升编译运行服务的并发能力,包含题目浏览、代码编辑、提交评测等核心功能。项目分为comm(公共模块)、compile_server(编译服务)和oj_server(主服务)三个模块,使用cpp-httplib、jsoncpp等开源库实现网络通信和数据序列化。文档详细说明了系统部署方法(需启动多个服务进程)、功能演示流程以及开发环境配置指南(包括GCC升级和依赖库安装)。

恢弘志士之气,不宜妄自菲薄 1011

告别配置烦恼!保姆级教程:在Windows 10/11上为QT5.14.2配置MSVC2017编译器(附VS2022组件避坑指南)

本文提供了一份详细的保姆级教程,指导如何在Windows 10/11上为QT5.14.2配置MSVC2017编译器,包括VS2022组件避坑指南。从环境准备到关键配置,再到调试工具验证和Qt Creator中的编译器设置,一步步解决常见问题,帮助开发者快速搭建稳定可靠的开发环境。

weixin_30615767的博客 503

微软登录OAuth 2.0授权流程

OAuth 2.0是一个关于授权的开放网络标准,它允许第三方应用获取用户数据,是目前最流行的授权机制。微软身份平台支持OAuth 2.0授权码流程,使得客户端应用程序能够获得对受保护资源(如网络API)的授权访问。这一流程在保障用户数据安全的前提下,实现了应用的便捷登录与数据共享。当用户在一个支持OAuth 2.0的应用上,希望使用微软账号进行登录时,OAuth 2.0授权流程即被触发。

qq_36569837的博客 4092

【C++项目】基于 C++ 的高并发代码评测系统(上)

本项目是基于 C++ 实现的分布式在线判题系统,复刻 LeetCode 核心功能,支持题目浏览、代码编写与提交判题。采用模块化架构与多机负载均衡,通过代码沙箱、资源限制、异常处理保证安全高效,可支撑高并发编译运行与测试用例评测。

2301_80475881的博客 210

Android 面试题 Handler篇

1.Handler的实现原理。

ViewHandKownHealth的博客 955

从零实现C++轻量级Json-RPC框架:基于muduo与JsonCpp的工程实践

远程过程调用(RPC)是一种实现分布式系统间通信的核心技术,它允许程序像调用本地函数一样调用远程服务,极大地简化了网络编程的复杂性。其核心原理在于通过网络传输序列化的调用请求和响应,屏蔽了底层的通信细节。在众多RPC协议中,基于JSON格式的Json-RPC因其轻量、易读和跨语言的特性,成为构建微服务、游戏服务器和物联网应用的热门选择。本文聚焦于C++后端开发场景,针对现有框架庞大或功能简陋的痛点,通过从零构建一个轻量级Json-RPC框架的实践,深入剖析网络通信、协议设计等关键技术。我们将基于成熟稳定的m

dgqvhtlwq472235338的博客 385

5分钟搞定Unity+Visual Studio开发环境配置(含C#游戏开发工作负载)

本文提供了一份详细的Unity与Visual Studio开发环境配置指南,帮助开发者在5分钟内完成C#游戏开发工作负载的设置。从Unity Hub安装到Visual Studio关键组件选择,再到常见问题排查,全面覆盖环境搭建的各个环节,显著提升游戏开发效率。

weixin_29014237的博客 249

AWS SQS跨账户访问失败排查指南

在使用AWS SQS(Simple Queue Service)时,跨账户访问是常见的业务场景。例如,账户A的应用程序向队列发送消息,账户B的消费者从队列拉取消息。尽管AWS官方文档明确支持此类配置,但在实际应用中,由于权限模型的复杂性,开发者和运维人员常会遇到“策略已配置但无法接收消息”的问题。通过本文的逐步排查指南,您不仅可以解决当前问题,还能深入理解AWS跨账户访问的权限模型。接收方账户的用户或角色必须同时附加IAM策略,显式授权操作目标队列。尽管策略看似允许接收方操作,实际测试中却返回空消息或。

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 459

ubuntu—ROS入门

本文档是Ubuntu环境下ROS(Robot Operating System)的入门教程,基于B站「ROS入门」视频合集整理而成。教程内容系统全面,共分为十个主要章节: 基础准备:介绍Ubuntu常用命令、ROS安装步骤(noetic版本)、APT软件包管理及工作空间配置方法 开发工具:详细讲解VS Code安装配置、Terminator超级终端使用技巧 核心概念:阐述Package与Node的关系,包括软件包创建、节点管理等基础操作 进阶内容:涵盖launch文件编写、机器人运动控制、传感器数据处理(R

kangjianing1的博客 480

RT-DETR改进策略【损失函数篇】| 2024 引进Focaler-IoU损失函数 加强边界框回归 (Focaler-DIoU、Focaler-GIoU、Focaler-CIoU等)

本文记录的是改进RT-DETR的损失函数,将其替换成。现有研究通过利用边界框之间的几何关系来提高回归性能,但忽略了困难样本和简单样本分布对边界框回归的影响。不同检测任务中困难样本和简单样本的分布不同,对于简单样本占主导的检测任务,关注简单样本的边界框回归有助于提高检测性能;对于困难样本比例较高的检测任务,需要关注困难样本的边界框回归。,提高检测器在不同检测任务中的性能。实现的。

Limiiiing的博客 1925

Qt C++应用移植WebAssembly实战:XML/RSS工具开发与部署指南

WebAssembly(WASM)作为一种可移植的二进制指令格式,为C/C++等高级语言提供了在浏览器中高效运行的编译目标。其核心原理是通过Emscripten工具链将原生代码编译为.wasm模块,结合JavaScript胶水代码实现与Web平台的交互。这项技术的核心价值在于实现跨平台代码复用,让成熟的C++桌面应用无需重写即可在Web环境中运行,显著降低了开发与维护成本。在应用场景上,它特别适合需要复杂业务逻辑、高性能计算或已有大量C++代码库的项目进行Web化迁移。本文以【Qt for WebAssem

congsikuai0611的博客 500

【保姆级教程】基于UNet++&MobileNetv2的语义分割模型从训练到RK3588部署:让边缘AI落地效率提升300%

通过SMP库一键构建encoder_name="mobilenet_v2", # 选择MobileNetv2作为骨干encoder_weights="imagenet", # 加载预训练权重加速收敛in_channels=3, # 输入图像通道数(RGB)classes=29, # Cityscapes数据集类别数activation=None # 输出无激活,便于后续损失计算本教程从“模型设计-训练-转换-边缘部署”全链路拆解了。

m0_71589036的博客 89

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: Spring-boot IDEA使用注解@ConfigurationProperties时报错解决
下一篇: 动态代理JDK于cglib
JSON_ZJS
博客等级 码龄9年 30粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值