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

7.第二阶段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

相关文章:

  • 【MySQL基础】左右连接实战:掌握数据关联的完整视图
  • LabVIEW 中 JSON 数据与簇的转换
  • Java实战报错 tcp
  • 深入理解深度学习模型的训练与评估模式:从基础组件到实战应用
  • 【WRF理论第十七期】单向/双向嵌套机制(含namelist.input详细介绍)
  • The 2024 CCPC National Invitational Contest (Changchun),第17届吉林省赛 C
  • STM32 HAL库之EXTI示例代码
  • 线程池(一):线程基础知识全面解析
  • 独立部署及使用Ceph RBD块存储
  • 学习OpenCV C++版
  • 卡尔曼滤波器的工作原理
  • 嵌入式系统中如何构建事件响应架构
  • Droris(强制)删除某一个分区数据
  • 优先级队列的应用
  • LeetCode 3375.使数组的值全部为 K 的最少操作次数:O(1)空间——排序+一次遍历
  • 递增子序列
  • 【前缀和】 K 整除的⼦数组(medium)
  • 【系统分析师-第二遍(19-22)】
  • 题目练习之动态规划(一)
  • 面向对象的要素
  • 网站网页设计案例/江东seo做关键词优化
  • 网站平台建设服务承诺书/关键词优化app
  • 爱站查询工具/公司网络推广网站
  • 手机如何建免费网站/搜索引擎营销sem
  • 网站建设需求调研/免费发帖平台
  • 企业馆设计公司/自动app优化最新版