C++stl String

构建一个字符串对象的方法很多,string 类中有多个重载的构造函数用于初始化一个字符串类对象。

构建函数作用
string str初始化一个空串str
string s("123456789")利用字符串常量初始化对象s
sring str(s)str是s的副本
string str(s,2)使用是【2-end]初始化
string str(s,2,5)str="34567"
string str(5,'c')str="ccccc"
string str(s.begin(),s.end())迭代器初始化

迭代器读取字符串 

#include<iostream>
using namespace std;
#include<string>
int main()
{
	string line("123456789");
	cout << string(line.begin(), line.end()) << endl;//正向迭代器
	cout << string(line.rbegin(), line.rend()) << endl;//反向迭代器
	//定义迭代器
	string::iterator it;
	for (it = line.begin(); it != line.end(); it++)
	{
		cout << *it;
	}
	cout << endl;
	string::reverse_iterator it1;
	for (it1 = line.rbegin(); it1 != line.rend(); it1++)
	{
		cout << *it1;
	}
	return 0;
}

 字符串容量:

  1. size 和 length 返回字符串的长度;
  2. empty 判断字符串是否为空
  3. clear 清空字符串
  4. max_size 返回字符串的最大长度
  5. resize 修改字符串的长度,不重新分配空间
  6. capacity 返回不重新分配内存的最大字符数
  7. reserve 增加字符串空间
#include<iostream>
using namespace std;
#include<string>
int main()
{
	string str("123456789");
	str.reserve(100);//重新分配空间保留字符数
	cout << str.capacity() << endl;
	int size = str.size();
	int length = str.length();
	unsigned long maxsize = str.max_size();
	cout << "capacity = " << str.capacity() << endl;
	cout << "size = " << str.size() << endl;
	cout << "length = " << str.length() << endl;
	cout << "maxsize = " << str.max_size() << endl;
	if (!str.empty())
	{
		cout << "str = " << str << endl;
	}



	return 0;
}

修改字符串:

  1. assign 给字符串赋值
  2. operator+= 追加字符串
  3. append 追加字符串
  4. push_back 追加单个字符
  5. insert 插入字符串
  6. erase 删除部分字符串
  7. replace 替换部分字符串
  8. swap 两个字符串交换内容 

 -》assign() 

#include<iostream>
using namespace std;
#include<string>
int main()
{
	string str("123456789");
	string str2;
	str2.assign(str);//将str的值拷贝到str2中
	cout << "str2 = " << str2 << endl;
	str2.assign(str, 6, 2);
	cout << "str2 = " << str2 << endl;
	str2.assign(5, 'x');
	cout << "str2 = " << str2 << endl;




	return 0;
}

 -》append

#include<iostream>
using namespace std;
#include<string>
int main()
{
	string str("123456789");
	string str2 = "qwert";
	str.append(str2);
	cout << "str = " << str << endl;
	str.append(str2, 2, 3);
	cout << "str = " << str << endl;
	str.append("zxc", 0, 2);
	cout << "str = " << str << endl;

	str.push_back('P');
	cout << "str = " << str << endl;
	str += "vbn";
	cout << "str = " << str << endl;


	




	return 0;
}

->insert 和erase

#include<iostream>
using namespace std;
#include<string>
int main()
{
	string str("0123456789");
	string str2 = "abce";
	cout << "str = " << str << endl;
	str.erase(5);
	cout << "str = " << str << endl;
	str.erase(2, 3);
	cout << "str = " << str << endl;
	str2.insert(2, str);
	cout << "str2 =" << str2 << endl;
	str2.insert(2, "西湖大学");
	cout << "str2 =" << str2 << endl;


	return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值