C++重要类型:string类

目录

前言

一、头文件

二、定义与赋值

1、定义一个空的string对象。

2、用一个字符串常量初始化string对象。

3、通过复制另一个string对象来初始化。

三、访问字符

四、内置函数


前言

在 C++ 中,string类是标准库的一部分,用于处理字符串。它提供了一种更方便、更安全的方式来操作文本数据,相比于 C 风格的字符串(以char*和一组相关的函数来处理)有很多优势。

一、头文件

在使用string作为变量类型前,需要添加 #include 头文件

二、定义与赋值

1、定义一个空的string对象。

#include
#include
using namespace std;

int main()
{
	string str;
	cout << str << endl;

	return 0;
}

运行结果

C++重要类型:string类_第1张图片

2、用一个字符串常量初始化string对象。

#include
#include
using namespace std;

int main()
{
	string str = "Hello String!";
	cout << str << endl;

	return 0;
}

运行结果

C++重要类型:string类_第2张图片

3、通过复制另一个string对象来初始化。

#include
#include
using namespace std;

int main()
{
	string str1 = "Hello String!";
	string str2 = str1;
	string str3(str1);
	//方法一
	cout << "str2: " << str2 << endl;
	//方法二
	cout << "str3: " << str3 << endl;

	return 0;
}

运行结果

C++重要类型:string类_第3张图片

三、访问字符

  • 可以使用[]运算符来访问string中的单个字符。例如,string str = "abc"; char c = str[0];,这里c的值为  'a' 。不过要注意,这种访问方式不进行边界检查,如果索引超出范围,会导致未定义行为。
#include
#include
using namespace std;

int main()
{
	string str = "abcde";
	cout << str[0] << " " << str[1] << endl;

	return 0;
}

运行结果

C++重要类型:string类_第4张图片

四、内置函数

获取长度:str.length();
字符串拼接:可以使用 + 运算符来拼接字符串;也可以使用str.append();
获取子字符串:str.substr(begin, size);
查找操作
    从头查找:str.find(char c);
    从尾查找:str.rfind(char c);
删除操作:str.erase(begin, size);
修改操作:str.replace(begin, size, string s);

#include
#include
using namespace std;

int main()
{
	string str1 = "abcd";
	string str2 = "efgh";
	cout << str1 << endl;
	cout << str2 << endl;
	string str3;
	//获取长度
	cout << "*-*-*-*-*-*-*-*-*-*-*-*-*-*-" << endl;
	cout << str1.length() << endl;  //s1的长度
	//字符串拼接(str1与str2合并)
	cout << "*-*-*-*-*-*-*-*-*-*-*-*-*-*-" << endl;
	str3 = str1 + str2;  //方法一
	cout << str3 << endl;
	str3.append("hijk");  //方法二
	cout << str3 << endl;
	//获取子字符串
	cout << "*-*-*-*-*-*-*-*-*-*-*-*-*-*-" << endl;
	int begin = 1;
	int size = 3;
	cout << str3.substr(begin, size) << endl;
	//查找操作
	cout << "*-*-*-*-*-*-*-*-*-*-*-*-*-*-" << endl;
	cout << str1.find('b') << endl;
	cout << "超出范围:" << str1.find('z') << endl;
	//删除操作
	cout << "*-*-*-*-*-*-*-*-*-*-*-*-*-*-" << endl;
	begin = 1;
	size = 3;
	str3 = str1;
	cout << str3.erase(begin, size) << endl;
	//修改操作
	cout << "*-*-*-*-*-*-*-*-*-*-*-*-*-*-" << endl;
	begin = 1;
	size = 3;
	str3 = str1;
	cout << str3.replace(begin, size, "xyz") << endl;


	return 0;
}

运行结果

C++重要类型:string类_第5张图片

你可能感兴趣的:(C++,c++,开发语言,蓝桥杯)