免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
本次游戏没法给
内容参考于:微尘网络安全
上一个内容: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());
}
}
效果图:使用空格拆分