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

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() {
	// 用空格拆分aaa
	string 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

http://www.dtcms.com/a/122958.html

相关文章:

  • UE学习记录part15
  • ffpyplayer+Qt,制作一个视频播放器
  • 玩转Docker | 使用Docker安装FileDrop文件共享工具
  • 如何解【决泛型作为运行时参数】时类型擦除问题
  • PowerBI数据建模2:计算选项、计算组
  • JavaScript实用API
  • 计算机视觉4——特征点及其描述子
  • LeetCode344反转字符串
  • 亮相2025全球分布式云大会,火山引擎边缘云落地AI新场景
  • 1. 两数之和 leetcode
  • 后缀自动机SAM练习笔记 (一)
  • Pandas-按索引从df中读取指定一个或者多个元素
  • Pytorch Dataset问题解决:数据集读取报错DatasetGenerationError或OSError
  • win10离线环境下配置wsl2和vscode远程开发环境
  • spark-Core
  • 基于vue3与supabase系统认证机制
  • 大模型分布式推理和量化部署
  • 高可用之战:Redis Sentinal(哨兵模式)
  • Docker基础2
  • 【教程】Windows 电脑部署使用 config2spec 详细教程
  • 基于ueditor编辑器的功能开发之给编辑器图片增加水印功能
  • 智能防灾网:气象灾害风险管理系统的科技力量与未来蓝图
  • Mybatis的springboot项目使用
  • 【leetcode hot 100 198】打家劫舍
  • 【力扣hot100题】(074)前 K 个高频元素
  • Nginx之https重定向为http
  • 【DvAdmin】接口返回 emoji 显示 ?解决方法
  • ArkTS语言入门之接口、泛型、空安全、特殊运算符等
  • vue3的router.ts中,在children和不在的区别
  • Python 爬取 1688.item_get_factory 接口:获取工厂档案信息实战指南