当前位置: 首页 > article >正文

8.第二阶段x64游戏实战-string类

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

本次游戏没法给

内容参考于:微尘网络安全

上一个内容:7.第二阶段x64游戏实战-分析人物属性

string类是字符串类,在计算机中看到的所有文字、字母、数字都属于字符串

string类写好了一些代码可以很方便的对字符串进行操作,比如拼接字符串、找字符串中某个文字在什么位置、根据某个关键字拆分字符串等

visual studio 2017安装教学:14.第二阶段x86游戏实战2-C++语言开发环境搭建-VisualStudio2017

首先打开visual studio 2017,打开之后如下图,新建一个项目

然后选择控制台应用,下图中2位置是修改代码存放的位置

创建完会有默认的代码,如下图红框,直接全删了

项目创建好,开始string类的使用

string的声明与定义

#include <string>
int main() {// std可以理解为一个仓库的名字,string是std仓库中的一个东西std::string s1;s1 = "第一种字符串定义方式";std::string s2 = "第二种字符串定义方式";
}

不写std::的方式,加一句using namespace std;就可以了

#include <string>
using namespace std;
int main() {// std可以理解为一个仓库的名字,string是std仓库中的一个东西string s1;s1 = "第一种字符串定义方式";string s2 = "第二种字符串定义方式";
}

string类获取字符串

#include <string>
using namespace std;
int main() {char* aaa = (char*)"计算机王";string s2 = aaa;// c_str()用来获取字符串printf("s2 = %s",s2.c_str());
}

效果图:

得到字符串的长度

#include <string>
using namespace std;
int main() {char* aaa = (char*)"计算机王";string s2 = aaa;// c_str()用来获取字符串printf("s2 = %s\n",s2.c_str());// length()获取字符串的字节数printf("s2的长度 = %d",s2.length());
}

效果图:一个中文2字节

英文:一个英文1字节

通过序号(数组)的方式修改字符串

#include <string>
using namespace std;
int main() {char* aaa = (char*)"jiwang";string s2 = aaa;// 通过序号修改字符串s2[5] = 'a';s2[4] = 'a';// c_str()用来获取字符串printf("s2 = %s\n",s2.c_str());printf("s2的长度 = %d",s2.length());
}

效果图:

拼接字符串

#include <string>
using namespace std;
int main() {char* aaa = (char*)"jiwang";string s2 = aaa;string s3 = "woshi";// 使用加号拼接字符串string s4 = s3+ s2;// c_str()用来获取字符串printf("s2 = %s\n", s4.c_str());printf("s2的长度 = %d", s4.length());
}

效果图:

比较字符串

#include <string>
using namespace std;
int main() {char* aaa = (char*)"3";string s2 = aaa;string s3 = "2";if (s2 < s3) {printf("s2 < s3");}else if (s2 > s3) {printf("s2 > s3");}else if(s2 == s3){printf("s2 == s3");}
}

效果图:

拆分字符串

#include <string>
using namespace std;
int main() {// 用空格拆分aaastring s1 = (char*)"1 2 3 4 5 6";string arr[6];char chaiFenTiaoJian = ' ';int 当前位置 = 0;int 开始位置 = 0;// find给他一个字符,它会从字符串中找这个字符的位置int 结束位置 = s1.find(chaiFenTiaoJian);// string::npos表示字符串的结尾while (结束位置 != string::npos) {// substr截取字符串,substr(0,2)的意思是获取0位置到2位置之间的数据arr[当前位置] = s1.substr(开始位置, 结束位置-开始位置);当前位置++;开始位置 = 结束位置 + 1;// find(chaiFenTiaoJian, 开始位置)意思是从 开始位置 开始找chaiFenTiaoJian出现的位置结束位置 = s1.find(chaiFenTiaoJian, 开始位置);}// 获取最后一段数据arr[当前位置] = s1.substr(开始位置);// 现在的当前位置的值表示了拆分的几段数据for (size_t i = 0; i <= 当前位置; i++){printf("%s\n", arr[i].c_str());}}

效果图:使用空格拆分


img

相关文章:

8.第二阶段x64游戏实战-string类

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;7.第二阶段x64游戏实战-分析人物属性 string类是字符串类&#xff0c;在计算机中…...

Go语言sync.Mutex包源码解读

互斥锁sync.Mutex是在并发程序中对共享资源进行访问控制的主要手段&#xff0c;对此Go语言提供了非常简单易用的机制。sync.Mutex为结构体类型&#xff0c;对外暴露Lock()、Unlock()、TryLock()三种方法&#xff0c;分别用于阻塞加锁、解锁、非阻塞加锁操作&#xff08;加锁失败…...

C++实现文件断点续传:原理剖析与实战指南

文件传输示意图 一、断点续传的核心价值 1.1 大文件传输的痛点分析 网络闪断导致重复传输&#xff1a;平均重试3-5次。 传输进度不可回溯&#xff1a;用户无法查看历史进度。 带宽利用率低下&#xff1a;每次中断需从头开始。 1.2 断点续传技术优势 指标传统传输断点续传…...

MySQL中FIND_IN_SET函数与INSTR函数用法解析

一、功能定义与语法 1、FIND_IN_SET函数 语法&#xff1a;FIND_IN_SET(str, strlist) 功能&#xff1a;在逗号分隔的字符串列表&#xff08;strlist&#xff09;中查找精确匹配的子字符串&#xff08;str&#xff09;&#xff0c;并返回其位置&#xff08;从1开始&#xff09…...

Python贝叶斯回归、强化学习分析医疗健康数据拟合截断删失数据与参数估计3实例

全文链接&#xff1a;https://tecdat.cn/?p41391 在当今数据驱动的时代&#xff0c;数据科学家面临着处理各种复杂数据和构建有效模型的挑战。本专题合集聚焦于有序分类变量处理、截断与删失数据回归分析以及强化学习模型拟合等多个重要且具有挑战性的数据分析场景&#xff0c…...

Git 协同开发的常用操作

1. 单仓库&#xff08;多分支开发&#xff09; 从远程拉取代码 git clone https://gitee.com/...查看当前分支 git branch -- *master创建并切换到你的开发分支&#xff08;my-dev&#xff09; git checkout -b my-dev查看当前分支 git branch -- marster -- *my-dev提交代…...

微信小程序 -- 原生封装table

文章目录 table.wxmltable.wxss注意 table.js注意 结果数据结构 最近菜鸟做微信小程序的一个查询功能&#xff0c;需要展示excel里面的数据&#xff0c;但是菜鸟找了一圈&#xff0c;也没发现什么组件库有table&#xff0c;毕竟手机端好像确实不太适合做table&#xff01; 菜鸟…...

分布式文件存储系统FastDFS

文章目录 1 分布式文件存储1_分布式文件存储的由来2_常见的分布式存储框架 2 FastDFS介绍3 FastDFS安装1_拉取镜像文件2_构建Tracker服务3_构建Storage服务4_测试图片上传 4 客户端操作1_Fastdfs-java-client2_文件上传3_文件下载4_获取文件信息5_问题 5 SpringBoot整合 1 分布…...

ZKmall开源商城服务端验证:Jakarta Validation 详解

ZKmall开源商城基于Spring Boot 3构建&#xff0c;其服务端数据验证采用Jakarta Validation API​&#xff08;原JSR 380规范&#xff09;&#xff0c;通过声明式注解与自定义扩展机制实现高效、灵活的数据校验体系。以下从技术实现、核心能力、场景优化三个维度展开解析&#…...

深度分页及优化建议

深度分页的定义 深度分页是指在分页查询中&#xff0c;当用户请求非常靠后的页面时&#xff0c;数据库需要处理大量数据&#xff0c;导致查询性能显著下降的情况。例如&#xff0c;一个查询结果有 100 万条记录&#xff0c;而用户要查询第 999 页&#xff08;每页 10 条记录&a…...

电网电能质量分析:原理、算法及实际应用

一、引言 在现代社会&#xff0c;电力供应的稳定性和可靠性对工业生产、社会生活的各个方面都至关重要。电能质量作为衡量电力系统供电能力的关键指标&#xff0c;其优劣直接影响到电力设备的运行效率、使用寿命以及生产过程的稳定性。随着电力系统规模的不断扩大&#xff0c;新…...

学透Spring Boot — 017. 魔术师—Http消息转换器

本文是我的专栏《学透Spring Boot》的第17篇文章&#xff0c;了解更多请移步我的专栏&#xff1a; 学透 Spring Boot_postnull咖啡的博客-CSDN博客 目录 HTTP请求和响应 需求—新的Media Type 实现—新的Media Type 定义转换器 注册转换器 编写Controller 测试新的medi…...

BOE(京东方)旗下控股子公司“京东方能源”成功挂牌新三板 以科技赋能零碳未来

2025年4月8日,BOE(京东方)旗下控股子公司京东方能源科技股份有限公司(以下简称“京东方能源”)正式通过全国中小企业股份转让系统审核,成功在新三板挂牌(证券简称:能源科技,证券代码:874526),成为BOE(京东方)自物联网转型以来首个独立孵化并成功挂牌的子公司。此次挂牌是BOE(京…...

Airflow集成Lark机器人

🥭1. 实现目标 🕐 通过自定义函数,实现Lark机器人告警功能 🕐 通过Lark机器人代替邮件数据的发送功能 🥭2.自定义函数实现 from airflow import DAG from airflow.operators.python_operator import PythonOperator from airflow.models import Variable import requ…...

Git使用与管理

一.基本操作 1.创建本地仓库 在对应文件目录下进行&#xff1a; git init 输入完上面的代码&#xff0c;所在文件目录下就会多一个名为 .git 的隐藏文件&#xff0c;该文件是Git用来跟踪和管理仓库的。 我们可以使用 tree 命令&#xff08;注意要先下载tree插件&#xff09…...

计算机网络——传输层(Udp)

udp UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议 &#xff09;是一种无连接的传输层协议&#xff0c;它在IP协议&#xff08;互联网协议&#xff09;之上工作&#xff0c;为应用程序提供了一种发送和接收数据报的基本方式。以下是UDP原理的详细解释&…...

网络安全小知识课堂(五)

病毒与蠕虫&#xff1a;你的电脑为何会 “生病” 和 “传染”&#xff1f; 引言 你是否见过这样的场景&#xff1a;电脑突然弹窗广告暴增&#xff0c;文件莫名消失&#xff0c;甚至整个公司网络集体瘫痪&#xff1f;这些症状背后&#xff0c;可能是 ** 病毒&#xff08;Virus…...

图解Java设计模式

1、设计模式面试题 2、设计模式的重要性 3、7大设计原则介绍 3.1、单一职责原则...

wsl2+ubuntu22.04安装blender教程(详细教程)

本章教程介绍,如何在Windows操作系统上通过wsl2+ubuntu安装blender并运行教程。Blender 是一款免费、开源的 ​​3D 创作套件​​,广泛应用于建模、动画、渲染、视频编辑、特效制作等领域。它由全球开发者社区共同维护,支持跨平台(Windows、macOS、Linux),功能强大且完全…...

其他合成方式介绍

在 SurfaceFlinger 的 Layer 处理逻辑中&#xff0c;除了常见的 Client Composition&#xff08;GPU合成&#xff09; 和 Device Composition&#xff08;HWC合成&#xff09;&#xff0c;还存在一些特殊的合成方式&#xff0c;比如 Sideband、Solid Color 和 Display Decorati…...

Spring AI Alibaba MCP 市场正式上线!

Spring AI Alibaba 正式上线 MCP 市场&#xff1a;Spring AI Alibaba-阿里云Spring AI Alibaba官网官网。 开发者可以在这里搜索市面上可用的 MCP Server 服务&#xff0c;了解每个服务的实现与接入方法。 MCP 市场是做什么的&#xff1f; Spring AI Alibaba MCP 当前主要提供…...

Spring Security基本入门

1、为什么要使用权限框架 权限管理是所有后台系统的都会涉及的一个重要组成部分&#xff0c;主要目的是对不同的人访问资源进行权限的控制&#xff0c;避免因权限控制缺失或操作不当引发的风险问题&#xff0c;如操作错误&#xff0c;隐私数据泄露等问题。 2、权限管理的常见…...

【Hadoop入门】Hadoop生态圈概述:核心组件与应用场景概述

1 Hadoop生态圈概述 Hadoop生态圈是以 HDFS&#xff08;分布式存储&#xff09; 和 YARN&#xff08;资源调度&#xff09; 为核心&#xff0c;围绕大数据存储、计算、管理、分析等需求发展出的一系列开源工具集合。 核心特点&#xff1a; 模块化&#xff1a;各组件专注解决特定…...

深入理解 Spring 的 MethodParameter 类

MethodParameter 是 Spring 框架中一个非常重要的类&#xff0c;它封装了方法参数&#xff08;或返回类型&#xff09;的元数据信息。这个类在 Spring MVC、AOP、数据绑定等多个模块中都有广泛应用。 核心功能 MethodParameter 主要提供以下功能&#xff1a; 获取参数类型信息…...

人工智能:GPT技术应用与未来展望

GPT(Generative Pre-trained Transformer)作为自然语言处理领域的代表性技术,近年来在各行业的实际应用中展现出广泛潜力。结合其技术特性与行业需求,以下是GPT的主要应用场景、案例分析及未来挑战的总结: 一、核心应用领域与案例 文本生成与内容创作 自动化内容生产:GPT…...

解决编译内核报错:No rule to make target ‘debian/canonical-certs.pem‘

解决编译内核报错&#xff1a;No rule to make target ‘debian/canonical-certs.pem‘问题 更换内核后重新编译内核报错1如下&#xff1a; make[1]: *** No rule to make target debian/canonical-certs.pem, needed by certs/x509_certificate_list. Stop. make: *** [Mak…...

spring mvc中不同服务调用类型(声明式(Feign)、基于模板(RestTemplate)、基于 SDK、消息队列、gRPC)对比详解

RestControllerAdvice 和 ControllerAdvice 对比详解 1. 基本概念 注解等效组合核心作用ControllerAdviceComponent RequestMapping&#xff08;隐式&#xff09;定义全局控制器增强类&#xff0c;处理跨控制器的异常、数据绑定或全局响应逻辑。RestControllerAdviceControll…...

【Java设计模式】第1章 课程导学

第1章 课程导学 1-1 课堂导学 课程介绍 设计模式是工程师必备知识&#xff0c;面试高频考点。课程目标&#xff1a;提炼常用设计模式精华&#xff0c;结合场景演进和源码解析&#xff0c;系统学习设计模式。课程特色&#xff1a; 动态递进式讲解&#xff0c;通过场景变化展示…...

Java + WebAssembly 2025:如何用Rust优化高性能Web应用?

&#x1f4dd; 摘要 随着WebAssembly(WASM)技术的成熟&#xff0c;Java开发者现在可以通过结合Rust来构建更高性能的Web应用。本文将详细介绍如何在2025年的技术栈中使用Java和Rust通过WebAssembly实现性能优化&#xff0c;包括基础概念、实际应用场景、详细代码示例以及性能对…...

MCU控制4G模组(标准AT命令),CatM的最大速率?

根据3GPP标准&#xff0c;Cat M1的上行峰值速率大约是1 Mbps&#xff0c;下行大约是1 Mbps。但实际速率会受到多种因素影响&#xff0c;比如网络条件、信号强度、模块配置等。 考虑使用AT命令时的开销。每次发送数据都需要通过AT命令&#xff0c;比如ATQISEND&#xff0c;会引…...