「这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战」
前言
上篇演示了字符串的拼接,使用的是+,除了这个基础操作,今天来介绍实战一下字符串其他最常用的基础操作
append 字符串拼接
#include <iostream>
using namespace std;
int main()
{
string a = "666";
string b = "999";
a.append(b);
cout << a << endl;
return 0;
}
运行效果
substr字符串切割
#include <iostream>
using namespace std;
int main()
{
string a = "666";
string b = a.substr(1,2);
cout << b << endl;
return 0;
}
substr,第一位为,开始位置,第二位是截取字符串长度。
判断字符长度
#include <iostream>
using namespace std;
int main()
{
string a = "666";
cout << a.length() << endl;
cout << size(a) << endl;
return 0;
}
主要是length和size方法。
判断字符是否包含另外的字符串
#include <iostream>
using namespace std;
int main()
{
string a = "666";
string b = "6";
string::size_type c;
c = a.find(b);//在a中查找b.
if (c == string::npos)//不存在。
cout << "没找到"<< endl;
else//存在。
cout << "找到了" << endl;
return 0;
}
string:npos是个特殊值,说明查找字符串有没有匹配,find结果于之相互对比。
字符串与整数互相转换&判断数据类型
#include <iostream>
#include <typeinfo>
#include <string>
using namespace std;
int main()
{
string a = "12";
cout << a << endl;
cout << typeid(a).name() << endl;
int b = atoi(a.c_str());
cout << b << endl;
cout << typeid(b).name() << endl;
string s = std::to_string(b);
cout << s << endl;
cout << typeid(a).name() << endl;
}
这个例子引入了其他的C++头文件,typeinfo,string一个是用来进行类型判断的,还有一个的是用于字符串的头文件包,和Python比较相似,但是其使用方法不利于基于,使用typeid(变量).name来进行变量的类型输出 。
使用std::stringstd是一个全局公用的命名空间,表示使用string头文件中的to_string方法来,进行整数转字符串类型
最后c_str()很难理解,c_str()返回的是一个临时指针,atoi是字符串转换为整数的方法,但是atio传入不能是字符串类型,需要是一个char*的指针类型,需要需要这样:atoi(字符串.c_str())
总结
总结到自己日常用到的一些方法,前面还比较简单,可以理解,最后的类型转换有点懵,主要是需要从C语言的习惯来,C语言太底层了,需要了解到一些指针知识,C和C++最难的就是指针了,这是最让学C和C++的人最头痛的地方,后面再继续慢慢揭开它的面纱~